Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
327 views
in Technique[技术] by (71.8m points)

iphone - Why does MPMoviePlayerController setCurrentPlaybackTime goes to the wrong time?

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

  1. Play video
  2. hit button to jump to 9.3 seconds into the video
  3. 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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...