MPMoviePlayerViewController videos queue
- Get link
- X
- Other Apps
hi all, i'm trying mpmovieplayer work multiple videos.
can observer on videoplayer, , find if end of video has reached using:
but it's not nice way, because movieplayer dismiss , again straight away next video. i'm not sure how play next video, should dismiss current videoplayer , load next one?code:- (void)mpmovieplayerplaybackstatedidchange:(nsnotification*)anotification { if(videoplayer.movieplayer.playbackstate == mpmovieplaybackstateplaying) { nslog(@"playing"); } else if(videoplayer.movieplayer.playbackstate == mpmovieplaybackstatepaused) { nslog(@"paused"); } else if(videoplayer.movieplayer.playbackstate == mpmovieplaybackstateseekingbackward) { nslog(@"backward"); } else if(videoplayer.movieplayer.playbackstate == mpmovieplaybackstateseekingforward) { nslog(@"forward"); } else if(videoplayer.movieplayer.playbackstate == mpmovieplaybackstatestopped) { nslog(@"stopped"); bool playbackended = ([[[anotification userinfo] valueforkey:mpmovieplayerplaybackdidfinishreasonuserinfokey] intvalue] == mpmoviefinishreasonplaybackended); bool endreached = (videoplayer.movieplayer.currentplaybacktime == videoplayer.movieplayer.playableduration); if (playbackended && endreached) { if(playvideo < videos.count - 1) { playvideo++; nsurl *video = [self grabfileurl:[videos objectatindex: playvideo] filetype:@"mp4"]; videoplayer = [[mpmovieplayerviewcontroller alloc] initwithcontenturl:video]; [videoplayer.movieplayer preparetoplay]; [videoplayer.movieplayer play]; [self dismissviewcontrolleranimated:no completion:nil]; [self presentmovieplayerviewcontrolleranimated: videoplayer]; } } else { [[nsnotificationcenter defaultcenter] removeobserver:self name:mpmovieplayerplaybackdidfinishnotification object:videoplayer.movieplayer]; [self dismissviewcontrolleranimated:yes completion:nil]; } } else if(videoplayer.movieplayer.playbackstate == mpmovieplaybackstateinterrupted) { nslog(@"interupted"); } }
besides that, seems can't next , previous track buttons work.
there way setup 'queue' of videos.
can me in right direction?
got avplayer work
however can in view, not present on own can mpmovieplayercode:avplayeritem *firstvideoitem = [avplayeritem playeritemwithurl: [self grabfileurl:@"vid1" filetype:@"mp4"]]; avplayeritem *secondvideoitem = [avplayeritem playeritemwithurl:[self grabfileurl:@"vid2" filetype:@"mp4"]]; avplayeritem *thirdvideoitem = [avplayeritem playeritemwithurl:[self grabfileurl:@"vid3" filetype:@"mp4"]]; queueplayer = [avqueueplayer queueplayerwithitems:[nsarray arraywithobjects:firstvideoitem, secondvideoitem, thirdvideoitem, nil]]; avplayerlayer *thelayer = [avplayerlayer playerlayerwithplayer: queueplayer]; thelayer.frame = self.view.frame; [self.view.layer addsublayer: thelayer]; [queueplayer play];
help?
i have done , it's pain in neck. don't have code in front of me here few odds-n-ends.
can stop movieplayerviewcontroller closing unregistering player
mpmovieplayerplaybackdidfinishnotification.
can start new video setting contenturl next/previous video when playing video ends.
next , previous track buttons cause changes in state of current video , need decide based on changes. next track button causes current video end. previous track button first restarts video. if it's tapped again in short period of time (0 - 1.5 seconds or so) ends video.
wasn't able figure out clear way of determine state changes previous track button tapped. did in end trawl through views , find previous track button. added action button callback , set flag indicating video rewinding. while hate doing couldn't find better way.
nothing has changed in mediaplayer between ios 7 , ios 8.3.
didn't bother avqueueplayer because doesn't show enough ui.
Forums iPhone, iPad, and iPod Touch iOS Programming
- iPhone
- Mac OS & System Software
- iPad
- Apple Watch
- Notebooks
- iTunes
- Apple ID
- iCloud
- Desktop Computers
- Apple Music
- Professional Applications
- iPod
- iWork
- Apple TV
- iLife
- Wireless
- Get link
- X
- Other Apps
Comments
Post a Comment