swift - 是否可以使用 Swift 编程以 0.01 的间隔更改 currentPlaybackRate?

标签 swift

我一直在尝试使用范围从 0.8 到 1.2 的变量,以 +/- 0.01 浮点间隔来更改 MPMusicPlayerController 的 currentPlaybackRate(通过按下按钮)。

player2?.currentPlaybackRate = rate

(其中速率可以等于:0.80、0.81、0.82、... 1.18、1.19、1.20)。

我在播放音乐时注意到,当速率值达到 0.8、0.9、1.0、1.1 和 1.2 时,音乐的速率才真正发生变化。我假设这与 float 的小数位有关。

我说的对吗?是否可以在代码中以 0.01 的间隔更改 currentPlaybackRate 的速率?我很想把音乐控制在1%的间隔速度。

最佳答案

这是 Apple 发给我的:

Apple 开发者关系 24-Sep-2015 03:00 AM

此问题的表现符合预期,原因如下:

“如果有音频,您需要设置除 AVAudioTimePitchAlgorithmLowQualityZeroLatency 之外的 audioTimePitchAlgorithm。请参阅 AVAudioProcessingSettings.h。

MPMusicPlayer 不支持将速率设置为如此细粒度的速率。 AVPlayer 提供了一个更可配置的播放界面。”

因此,使用 MPMusicPlayer 无法以 0.01 的间隔更改音乐速率。

关于swift - 是否可以使用 Swift 编程以 0.01 的间隔更改 currentPlaybackRate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32439011/

相关文章:

ios - Xib 导出 View swift 变为 nil

swift - 如何仅以编程方式将控件添加到 tableview 单元格一次

swift - 使用 Vapor 上传文件

swift - 在 Swift 中保存分段控件的状态

ios - 为什么函数不检索数据?

ios - 使用 MVP 模式 iOS 将数据传递给另一个 Controller

ios - Swift3/Firebase 更新子项

ios - 删除第一个 View 上的导航标题栏

ios - 如何正确确定 iOS 上的键盘和文本字段位置?

swift - 在 SwiftUI 中同时打开多个预览