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
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];
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
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];
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];