在iOS中,可以通过设置AVPlayer.rate来改变播放速率。当AVPlayback速率设置为0.5时,播放速度会变慢。
默认情况下,0.5回放率的声音质量很差。要提高质量,需要设置AVPlayerItem.audioTimePitchAlgorithm。
根据API文档,将AVPlayerItem.audioTimePitchAlgorithm设置为AVAudioTimePitchAlgorithmSpectral使质量最高。
“快速守则”是:
AVPlayerItem.audioTimePitchAlgorithm = AVAudioTimePitchAlgorithm.spectral // AVAudioTimePitchAlgorithmSpectralAVAudioTimePitchAlgorithmSpectral比默认质量更能提高质量。但是AVAudioTimePitchAlgorithmSpectral的音质还不够好。声音仍在回响,听起来压力很大。
在苹果的Podcast应用程序中,当我将播放速度设置为1/2时,播放速度变慢,音质很高,根本没有回音。
我希望我的应用程序提供与苹果的Podcast应用程序相同的质量。
是否有iOS APIs比AVAudioTimePitchAlgorithmSpectral更能提高音质?
如果不是,为什么苹果不提供它,即使他们在自己的Podcast应用程序中使用它?
或者我应该使用第三方图书馆?是否有免费或低价的好图书馆,以及许多人用来改变播放速度的图书馆?
发布于 2018-10-13 17:49:34
我一直在搜索和尝试学习AudioKit和音频单元,甚至考虑购买第三方的时间延伸音频处理库来解决过去3周慢播放的质量问题。
现在我终于找到了一个超级简单的解决方案。
AVPlayer可以通过将AVPlayerItem.audioTimePitchAlgorithm设置为AVAudioTimePitchAlgorithm.timeDomain而不是AVAudioTimePitchAlgorithm.spectral来减慢音频质量。
文件上说:
timeDomain是一种中等质量的基音算法,计算量较小。适用于语音。
这意味着spectral适合于音乐。timeDomain适用于语音。
这就是为什么我的应用程序使用的语音文件被回音的原因。
这就是为什么苹果的播客应用程序速度慢的音频质量非常高的原因。它还必须使用这个时域算法。
这就是为什么AudioKit,似乎是为音乐的使用而开发的,它播放的声音音频质量很差。
发布于 2018-10-01 13:09:05
我在保持一定质量水平的同时,也遇到了同样的问题。使用Apples无法让它正常工作。最后,我发现值得看一看这个优秀的第三方框架:
https://github.com/AudioKit/AudioKit
它允许你以一种简单的方式去做这件事,还有更多。希望这能有所帮助
https://stackoverflow.com/questions/52462881
复制相似问题