MPMoviePlayerController的initialPlaybackTime属性在iOS 8.4中不起作用

fre*_*ler 15 objective-c mpmovieplayercontroller ios ios9 ios8.4

设置initialPlaybackTime属性后,视频(HTTP流)仍然从头开始播放.

相同的代码在iOS <= 8.3中运行良好:

 self.moviePlayer.initialPlaybackTime = self.lastPlaybackTime;
[self.moviePlayer play];
Run Code Online (Sandbox Code Playgroud)

har*_*man 6

这对我的作品,基本上你需要setCurrentPlaybackTime当电影开始播放,但你还需要一个标志playbackDurationSet被设置为NO,当你现在movieplayer当电影seeked到playbackDuration首次将它设置为YES .

注意:此标志是必需的,因为当您从搜索清理器中搜索影片时,将使用MPMoviePlaybackStatePlaying的playbackState触发 moviePlayerPlaybackStateChanged.

BOOL playbackDurationSet = NO;
- (void)moviePlayerPlaybackStateChanged:(NSNotification*)notification
{
    MPMoviePlayerController* player = (MPMoviePlayerController*)notification.object;
    switch ( player.playbackState ) {
        case MPMoviePlaybackStatePlaying:
        if(!playbackDurationSet){
           [self.moviePlayer setCurrentPlaybackTime:yourStartTime];
           playbackDurationSet = YES;
        }
        break;
    }
}

- (void)moviePlayerPresented
{
      playbackDurationSet = NO;
}
Run Code Online (Sandbox Code Playgroud)