gpt4 book ai didi

cocoa - 为什么 AVPlayerItem 不支持 AVAudioTimePitchAlgorithmVarispeed 设置?

转载 作者:行者123 更新时间:2023-12-03 17:49:54 28 4
gpt4 key购买 nike

我正在尝试根据发送到 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com