- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据发送到 AVPlayer 的速率来更改 AVPlayerItem 的音频音调。
为此,我使用指定“AVAudioTimePitchAlgorithmVarispeed”的 AVAsset 初始化 AVPlayerItem,如下所示:
AVPlayerItem *nPlayerItem = [AVPlayerItem playerItemWithAsset:asset];
[nPlayerItem setAudioTimePitchAlgorithm:AVAudioTimePitchAlgorithmVarispeed];
然后我将playerItem附加到AVPlayer,但是当我将AVPlayer的速率设置为小于1或大于1时,音调不会改变。相反,AVPlayerItem 使用“AVAudioTimePitchAlgorithmSpectral”算法,并且不遵循我指定的算法。我的目标是 10.9,并以 10.9 为目标。根据文档,此功能从 10.9 开始可用。
最佳答案
我通过以下方式解决了我的问题:1)将playerItem添加到AVPlayer 2)在播放器项目的状态上设置键值观察(KVO):
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if ([object isKindOfClass:[AVPlayerItem class]] && [keyPath isEqualToString:@"status"]) {
AVPlayerItem *nPlayerItem = (AVPlayerItem *)object;
if([nPlayerItem status] == AVPlayerItemStatusReadyToPlay){
[nPlayerItem setAudioTimePitchAlgorithm:AVAudioTimePitchAlgorithmVarispeed];
}
}
}
只有当playerItem达到“AVPlayerItemStatusReadyToPlay”状态时,我才能成功设置playerItems的audioTimePitchAlgorithm上的AVAudioTimePitchAlgorithmVarispeed。
关于cocoa - 为什么 AVPlayerItem 不支持 AVAudioTimePitchAlgorithmVarispeed 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30220539/
根据这些docs ,我可以更改 AVAudioPlayer 的某些设置,包括 AVAudioTimePitchAlgorithmVarispeed 设置。我将如何设置这个值?我需要继承 AVAudio
我正在尝试根据发送到 AVPlayer 的速率来更改 AVPlayerItem 的音频音调。 为此,我使用指定“AVAudioTimePitchAlgorithmVarispeed”的 AVAsset
我是一名优秀的程序员,十分优秀!