iOS Swift Pitch AVPlayer AVAudioSession AudioSession Audio AVPlayerItem


這篇沒有要介紹怎樣播放,怎樣播放可以看先前的這篇 iOS AVPlayer Play Audio


這篇是要說明一下,當使用 AVPlayer 播放聲音,不是一倍速的時候,聲音會有嚴重回音的問題

蘋果官方是有 api 可以解決這個問題的


在 AVPlayItem 底下是有一個變數可以設定要使用哪種演算法來處理聲音的變化

var audioTimePitchAlgorithm: AVAudioTimePitchAlgorithm { get set }

The processing algorithm used to manage audio pitch for scaled audio edits.


AVAudioTimePitchAlgorithm 官方連結

這一個 Struct 定義了三個 static 以下是官網的說明

static let spectral: AVAudioTimePitchAlgorithm
A highest-quality time pitch algorithm that’s suitable for music.


static let timeDomain: AVAudioTimePitchAlgorithm
A modest quality time pitch algorithm that’s suitable for voice.


static let varispeed: AVAudioTimePitchAlgorithm
A high-quality time pitch algorithm that doesn’t perform pitch correction.


如果你播放的是音樂的話,請選擇 spectral

如果你播放的是人聲的話,請選擇 timeDomain


打完 搞定 收工