我是iOS的初學者,我試圖用Swift設計鼓組應用程序。我用一個按鈕設計了一個視圖並編寫了下面的代碼,但它有一些問題:iOS中的簡單低延遲音頻播放Swift
- 當我像滾鼓一樣快速觸摸按鈕時,有些聲音會丟失。
- 仍然在「滾筒滾動」中,每次觸摸按鈕時都會中斷聲音,而不是讓樣本播放直到結束。例如,在cy片中這很糟糕。即使再次觸摸按鈕,我也希望聽到每個聽起來完整的聲音。
- 觸摸和聲音之間存在延遲。我知道,
AVAudioPlayer
不是低延遲音頻的最佳選擇,但作爲一個初學者,很難學習OpenAL
,AudioUnit
無代碼示例或教程Swift
。問題類似於:Which framework should I use to play an audio file (WAV, MP3, AIFF) in iOS with low latency?。
代碼:
override func viewDidLoad() {
super.viewDidLoad()
// Enable multiple touch for the button
for v in view.subviews {
if v.isKindOfClass(UIButton) {
v.multipleTouchEnabled = true
}
}
// Init audio
audioURL = NSBundle.mainBundle().URLForResource("snareDrum", withExtension: "wav")!
do {
player = try AVAudioPlayer(contentsOfURL: audioURL)
player?.prepareToPlay()
} catch {
print("AVAudioPlayer Error")
}
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
player?.stop()
player = nil
}
@IBAction func playSound(sender: UIButton) {
player?.currentTime = 0
player?.play()
}
我認爲音頻單元可能是獲得您所期待的那種低延遲行爲的唯一方法,但如果有人告訴我我錯了,我會喜歡它。我正在學習如何在Swift中使用AudioToolbox,並很樂意分享我正在學習的東西。 –
感謝您的回覆,我很感謝您在Swift中使用AudioToolbox的幫助。我們如何與我們取得聯繫?通過電子郵件? – msampaio
您是否收到我的電子郵件地址?我把它留在這裏約30分鐘,然後刪除它... –