有没有办法阻止AVPlayer的速率属性被重置?

时间:2011-12-31 15:15:53

标签: ios xcode avplayer

我正在使用AVPlayer对象进行视频播放,并且可以控制播放器的速率。

除了每次按下停止/暂停按钮时AVplayer对象的速率值似乎重置为1.0,这一切都正常。有没有办法防止这种情况发生?

非常感谢。

4 个答案:

答案 0 :(得分:5)

[AVPlayer play]等同于[AVPlayer setRate:1.0]

[AVPlayer pause]等同于[AVPlayer setRate:0.0]

答案 1 :(得分:0)

这样做是为了Google的利益......

每次玩家开始玩时,费率属性都会重置为1.0,因此您需要在其他地方维持费率值,并在每次游戏时重新应用。

答案 2 :(得分:0)

MPMediaItem为您提供了一个属性来读取媒体项目的每分钟节拍数。

像这样 -

MPMediaItem *item = [[MPMediaItem alloc]init] ;
.
.
.
int BPM =  [item valueForProperty:MPMediaItemPropertyBeatsPerMinute];

现在计算您要设置媒体项目费率的速率 -

float rate = newBPM/(float)BPM; // lets say BPM = 100, You want to double the rate of the media then newBPM = 200

现在将此速率设置为AVPlayer对象 -

[AVPLayer setRate:rate];

答案 3 :(得分:0)

通过AVPlayer的'play'方法重置速率很奇怪,但却是真的。我使用以下代码作为解决方法来加载新的播放器项目,调整播放速率并让它播放:

[self.player replaceCurrentItemWithPlayerItem: [AVPlayerItem playerItemWithURL: movieURL]];
self.player.rate = PLAYER_RATE;
[self.player seekToTime: kCMTimeZero];