我对MPMoviePlayerController感到有点古怪。
我正在尝试在播放时设置视频的currentPlaybackTime(文件来源)。 以下是发生的事情的一个例子
a)播放状态= 5(MPMoviePlaybackStateSeekingBackward)。 currentPlaybackTime = 15.74(这是我按下按钮时的时间)
b)播放状态= 1(MPMoviePlaybackStatePlaying)。 currentPlaybackTime = 7.32
似乎并不重要我尝试将currentPlaybackTime设置为最终为7.32。
一些额外信息: 即使使用MPMoviePlayerController上的内置控件,我也会遇到此行为。例如如果我向前滚动到15秒,它会跳回到7.32
有什么想法吗?它与媒体文件有关吗?
答案 0 :(得分:6)
您应该使用seekToTime或seekToTimeWithSeconds。
CMTime npt = CMTimeMake(9,1);
[self.player seekToTime:npt];
或
CMTime npt = CMTimeMakeWithSeconds(9.3, 600);
[self.player seekToTime:npt toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
答案 1 :(得分:3)
这是一个迟到的回复,但我找到了类似的问题的解决方案。 您可以按如下方式修改播放:
#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];
答案 2 :(得分:1)
cdasher指出了我正确的方向,但这是你应该做的:
使用seekToTime寻求:toleranceBefore:toleranceAfter用于样本准确搜索。为此,您必须使用AVPlayer而不是MPMediaPlayerController
CMTime npt = CMTimeMakeWithSeconds(9.3, 600);
[self.player seekToTime:npt toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
答案 3 :(得分:1)
我想分享我对MPMoviePlayerController mediaPlayer播放MP3的经验。
[mediaPlayer setCurrentPlaybackTime:currentPlayBackTime]; //它不适用于MP3文件。这仅适用于视频。
我用于MP3,它适用于IOS 11及更高版本。
[mediaPlayer setInitialPlaybackTime:currentPlayBackTime]; //从最后位置播放MP3文件