MPMoviePlayerViewController videos queue


hi all, i'm trying mpmovieplayer work multiple videos.
can observer on videoplayer, , find if end of video has reached using:
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");       } } 
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?

besides that, seems can't next , previous track buttons work.

there way setup 'queue' of videos.

can me in right direction?

got avplayer work
code:
   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]; 
however can in view, not present on own can mpmovieplayer

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

Comments

Popular posts from this blog

OS X El Capitan on Unsupported Macs

[SOLVED] SFOTT usb key not bootable Mavericks

Fernando Torres: One of the all-time greats?