首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使使用AVPlayer,缓慢播放的音质也不够好。

即使使用AVPlayer,缓慢播放的音质也不够好。
EN

Stack Overflow用户
提问于 2018-09-23 04:02:35
回答 2查看 1.9K关注 0票数 8

在iOS中,可以通过设置AVPlayer.rate来改变播放速率。当AVPlayback速率设置为0.5时,播放速度会变慢。

默认情况下,0.5回放率的声音质量很差。要提高质量,需要设置AVPlayerItem.audioTimePitchAlgorithm

根据API文档,将AVPlayerItem.audioTimePitchAlgorithm设置为AVAudioTimePitchAlgorithmSpectral使质量最高。

“快速守则”是:

代码语言:javascript
复制
AVPlayerItem.audioTimePitchAlgorithm = AVAudioTimePitchAlgorithm.spectral // AVAudioTimePitchAlgorithmSpectral

AVAudioTimePitchAlgorithmSpectral比默认质量更能提高质量。但是AVAudioTimePitchAlgorithmSpectral的音质还不够好。声音仍在回响,听起来压力很大。

在苹果的Podcast应用程序中,当我将播放速度设置为1/2时,播放速度变慢,音质很高,根本没有回音。

我希望我的应用程序提供与苹果的Podcast应用程序相同的质量。

是否有iOS APIs比AVAudioTimePitchAlgorithmSpectral更能提高音质?

如果不是,为什么苹果不提供它,即使他们在自己的Podcast应用程序中使用它?

或者我应该使用第三方图书馆?是否有免费或低价的好图书馆,以及许多人用来改变播放速度的图书馆?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-13 17:49:34

我一直在搜索和尝试学习AudioKit和音频单元,甚至考虑购买第三方的时间延伸音频处理库来解决过去3周慢播放的质量问题。

现在我终于找到了一个超级简单的解决方案。

AVPlayer可以通过将AVPlayerItem.audioTimePitchAlgorithm设置为AVAudioTimePitchAlgorithm.timeDomain而不是AVAudioTimePitchAlgorithm.spectral来减慢音频质量。

文件上说:

timeDomain是一种中等质量的基音算法,计算量较小。适用于语音

这意味着spectral适合于音乐timeDomain适用于语音

这就是为什么我的应用程序使用的语音文件被回音的原因。

这就是为什么苹果的播客应用程序速度慢的音频质量非常高的原因。它还必须使用这个时域算法。

这就是为什么AudioKit,似乎是为音乐的使用而开发的,它播放的声音音频质量很差。

票数 13
EN

Stack Overflow用户

发布于 2018-10-01 13:09:05

我在保持一定质量水平的同时,也遇到了同样的问题。使用Apples无法让它正常工作。最后,我发现值得看一看这个优秀的第三方框架:

https://github.com/AudioKit/AudioKit

它允许你以一种简单的方式去做这件事,还有更多。希望这能有所帮助

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52462881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档