使用 AVPlayer 在 iOS 中音频流期间的播放速度

Posted

技术标签:

【中文标题】使用 AVPlayer 在 iOS 中音频流期间的播放速度【英文标题】:Playback speed during Audio Streaming in iOS using AVPlayer 【发布时间】:2015-01-28 05:38:55 【问题描述】:

我正在使用 Swift 开发 ios 应用程序,但我的问题是,试图在音频流式传输期间调整播放速度。

我正在为这个项目使用 AVPlayer:

streamingPlayer = AVPlayer(playerItem: audioItem)

调整播放速度:

streamingPlayer.rate = slider.value

我使用测试服务器对其进行了测试,它适用于有助于访问音频文件的普通链接。播放速度的调整没有问题,效果很好。

当链接涉及更多安全性时,就会出现问题。我可以通过.ashx 请求访问音频。速度可以变慢(AVPlayer rate < 1),但是当它必须变快时就会出现问题。 (正常比率为 1,所以问题是比率不能大于 1)

我尝试使用下面的功能,但没有帮助:

audioItem.canPlayFastForward

另一个奇怪的问题是,当测试人员在高速互联网上对其进行测试时,它运行良好。我以 15-30 mbps 的速度对其进行了测试,但问题仍然存在。我假设这是与服务器连接的问题。我不希望用户使用高速互联网来使用该应用程序。那么有人可以帮我优化或解决这个问题吗?

我查看了AVPlayer 文档并尝试了几乎所有提供的功能。

这是一个示例link。如果有人可以帮助我,将不胜感激!

【问题讨论】:

【参考方案1】:

我意识到这将在 9 个月后出现,但我遇到了与您类似的问题并想通了,所以我想我会为将来看到此问题的任何人发帖。你必须设置:AVAudioPlayerName.enableRate = true.

【讨论】:

【参考方案2】:

您可以通过此单行代码增加或减少费率:

Avplayer.playImmediately(atRate: 1.25)// change the rate

【讨论】:

以上是关于使用 AVPlayer 在 iOS 中音频流期间的播放速度的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发:AVPlayer实现流音频边播边存

iOS开发 - AVPlayer实现流音频边播边存

iOS SDK AVPlayer - 如何检测音频流是不是可搜索?

如何在 iOS 中使用 AVPlayer 缓冲音频?

在 iOS 13 上,AVPlayer 会为此 HLS 视频选择仅音频流。我可以控制这种行为,而是让它加载视频+音频吗?

带有 AVPlayer 的音频流