Search code examples
objective-cplaybackmpmovieplayerplaysound

MPMoviePlayerController setCurrentPlaybackTime becomes zero when doing play


[playerView setCurrentPlaybackTime:5.100000];

LOG -> playerView.currentPlaybackTime = @"5.100000"
[playerView play];
LOG -> playerView.currentPlaybackTime = @"0"

In other cases this happens

LOG -> playerView.currentPlaybackTime = @"25.000000"
[playerView play];
LOG -> playerView.currentPlaybackTime = @"23.156467"

I tried using [playerView prepareToPlay] before play, but it does not work


Solution

  • I finally decided to switch to AVPlayer

    setCurrentPlayback is

    int32_t timeScale = playerView.currentItem.asset.duration.timescale;
    CMTime time = CMTimeMakeWithSeconds(value, timeScale);
    [playerView seekToTime:time toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
    

    Duration is

    CMTime duration = playerView.currentItem.asset.duration;
    float seconds = CMTimeGetSeconds(duration);
    

    Same pause and Play functions.