首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer :没有音高修正的变化率?

AVPlayer :没有音高修正的变化率?
EN

Stack Overflow用户
提问于 2016-03-25 16:11:13
回答 3查看 1K关注 0票数 4

我使用rate属性AVPlayer来更改音频示例的播放速度。它似乎总是应用音高校正,但我不希望音高校正,所以当它加快速度时,它会变得更高,就像一个唱片或旧磁带播放器。有没有办法在AVPLayer中完全关闭音高修正?

我目前正在使用Swift 3,但目标C答案也是受欢迎的。

EN

回答 3

Stack Overflow用户

发布于 2019-08-27 18:51:50

不确定这是否可以使用AVPlayer,但如果您只是使用它播放音频,您可以很容易地使用AVAudioEngine:

代码语言:javascript
复制
var audioPlayer = AVAudioPlayerNode()
var engine = AVAudioEngine()
var speedControl = AVAudioUnitVarispeed()

// engine setup:

do {

    let file = try AVAudioFile(forReading: "myFile.mp3")

    engine.attach(audioPlayer)
    engine.attach(speedControl)

    engine.connect(audioPlayer, to: speedControl, format: nil)
    engine.connect(speedControl, to: engine.mainMixerNode, format: nil)

    audioPlayer.scheduleFile(file, at: nil)

    try engine.start()

} catch {
    print(error)
}

// changing rate without pitch correction:

speedControl.rate = 0.91
票数 1
EN

Stack Overflow用户

发布于 2019-08-29 15:22:36

实际上,这在AVPlayer中是可能的--

代码语言:javascript
复制
let player = AVPlayer(url: fileURL)

// to turn off pitch correction:

player.currentItem?.audioTimePitchAlgorithm = .varispeed
票数 0
EN

Stack Overflow用户

发布于 2022-04-28 13:35:13

使用AVAudioUnitTimePitch是您所需要的。改变rate属性(默认为1.0)将改变音频的速度而不改变音高。

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

https://stackoverflow.com/questions/36223632

复制
相关文章

相似问题

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