Why does MPMoviePlayerController setCurrentPlaybackTime goes to the wrong time?

前端 未结 4 1691
借酒劲吻你
借酒劲吻你 2020-12-07 01:00

I am experience some weirdness with MPMoviePlayerController.

I am trying to set the currentPlaybackTime of a video whilst it is playing (file source). Here is an exa

相关标签:
4条回答
  • 2020-12-07 01:23

    You should seek using seekToTime or seekToTimeWithSeconds.

     CMTime npt = CMTimeMake(9,1);
     [self.player seekToTime:npt];
    

    or

      CMTime npt = CMTimeMakeWithSeconds(9.3, 600);
       [self.player seekToTime:npt toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
    
    0 讨论(0)
  • 2020-12-07 01:27

    I want to share my experience for MPMoviePlayerController mediaPlayer to play MP3.

    [mediaPlayer setCurrentPlaybackTime:currentPlayBackTime]; // it is not working for MP3 file. This is work only for video.

    i used for MP3 and it is working for IOS 11 and later.

    [mediaPlayer setInitialPlaybackTime:currentPlayBackTime]; // play MP3 file from last position

    0 讨论(0)
  • 2020-12-07 01:31

    This is a late response, but I found a solution to my issue which was similar. You can modify the playback as follows:

    #define START_TIME 50.0f
    #define END_TIME   START_TIME + 20.0f  //play for 20 seconds
    
    MPMoviePlayerController *player = [self moviePlayerController];
    [player stop];
    [player setInitialPlaybackTime:START_TIME];
    [player setEndPlaybackTime:END_TIME];
    [player play];
    
    0 讨论(0)
  • 2020-12-07 01:33

    cdasher pointed me in the right direction but this is what you should do:

    Seek using seekToTime:toleranceBefore:toleranceAfter for sample accurate seeks. For this you must use AVPlayer not MPMediaPlayerController

    CMTime npt = CMTimeMakeWithSeconds(9.3, 600);
    [self.player seekToTime:npt toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
    
    0 讨论(0)
提交回复
热议问题