有没有办法阻止AVPlayer的rate属性被重置?
问题描述:
我正在使用AVPlayer对象进行视频播放,并且有一个控件来调整播放器的速率。有没有办法阻止AVPlayer的rate属性被重置?
这一切都工作正常,除了每次按下停止/暂停按钮AVplayer对象的速率值似乎重置为1.0。有没有办法来防止这种情况发生?
非常感谢。
答
在此之后弥补谷歌的利益......
率属性重置为每个玩家开始玩的时候1.0,所以你需要维持率数值在其他地方重新它适用于各玩。
答
[AVPlayer play]
相当于[AVPlayer setRate:1.0]
[AVPlayer pause]
相当于[AVPlayer setRate:0.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];
答
通过AVPlayer的“play”方法重置速率很奇怪,但却是正确的。我用下面的代码作为一种变通方法来加载一个新的球员的项目,调整播放速度,并让它发挥:
[self.player replaceCurrentItemWithPlayerItem: [AVPlayerItem playerItemWithURL: movieURL]];
self.player.rate = PLAYER_RATE;
[self.player seekToTime: kCMTimeZero];
这是相同的行为我MPMoviePlayer得到的,它甚至寻求后会发生。我提出了一个关于它的雷达。 – 2012-01-25 00:30:41