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 example of what happens
- Play video
- hit button to jump to 9.3 seconds into the video
- Play state changes as follows:
a) Play state = 5 (MPMoviePlaybackStateSeekingBackward). currentPlaybackTime = 15.74 (this is the time I had got to when I pressed the button)
b) Play state = 1 (MPMoviePlaybackStatePlaying). currentPlaybackTime = 7.32
It doesn't seem to matter what I try and set currentPlaybackTime to it ends up as 7.32.
Some extra info: I get this behaviour even using the built in controls on MPMoviePlayerController. e.g. If I scroll it forward to 15 seconds it jumps back to 7.32
Any ideas? Is it something to do with the media file?
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
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
You should seek using seekToTime or seekToTimeWithSeconds.
or
This is a late response, but I found a solution to my issue which was similar. You can modify the playback as follows: