Salary
$30-250
Location
San Jose, CA, United States
Posted on
Jul 24, 2020
Profile
Apple TV download manager for playing video offline
The app is a music video streaming service with device on android, iOS, Apple TV, Roku and Fire TV. We are looking to develop a feature to download video for offline playback.
REQUIRED: Apple tvOS, Websocket. Swift and video libraryies/classes
the first task is to build the FIFO model class or object
class MixManager
VideoMix object of video mix info
- video mix id
- channel id
(all the video play information)
methods
nextVideo()
- video to play.
- stay in queue first position until done,
- use pop() and add() to move the played to the back of the queue (repeat)
getLimit() max number of download video allowed to manage
setLimit() - set the max number of videos for download
pop() - at the from
add(videoMix) - to the back of the queue
push(videoMix) - to the front of the queue
moveTo(index) - move to another
remove(videoMix) - remove ONLY from play list
delete(videoMix) - delete local downloaded video
cancel(videoMix) - stop download and remove file or partial file
availableVideos() - list of READY videos for play
pendingVideos() - list of PENDING videos still downloading
toHistory(videoMix) - send history of video play to server
* you must maintain the list of local files with video/channel info.
* do not delete. you may need for replay again
LISTENER and ACTIONS
Listen for websocket commands
When a switch channel is received. Look for a new variable isQueue to indicate offline channel and actions
- switch channel isQueue = T or F
ACTIONS
- if false, you play it normally live streaming. and still have the MixManger continue to download
- if true, call getNextVideo 10-20 times immediately and add to the MixManager for download and play
- if true && channel is already in queue,
continue playing the local files for that channel. calls getNextVideo and add more video for download if available. we can finalize the algorithm or rules for downloading how many video later)
Therefore, you have to associate or group the channel and files. You may need to build an Array or multi-dimension array or combination Array with HashMap((channel_id, videoMix) or something like that to keep track of the channels and video mixes
TASKS & MILESTONES
1 - develop the manager the class and methods for review
2 - test playing local files with the MixManager
3 - test managing playlist (play/add back to queue etc)
4 - test download and cancel
5 - test managing local files delete/cancel/clean/etc
6 - Live testing
7 - bug fixes
Skills:
TvOS
, Swift
, HTTP
Company info
Sign Up Now - ManagerCrossing.com