我正在嘗試在應用程序中構建一個音板,並找出了使用標籤控制播放聲音的有效方法。但是我現在想集成一個暫停按鈕,可使用在AVAudioPlayer
的.stop()
方法一起使用,但是我得到一個錯誤與我當前的代碼:Swift - 停止播放器
EXC_BAD_ACCESS
這是我使用的那一刻是什麼,有任何想法嗎?
import UIKit
import AVFoundation
let soundFilenames = ["sound","sound2","sound3"]
var audioPlayers = [AVAudioPlayer]()
class SecondViewController: UIViewController {
var audioPlayer = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
for sound in soundFilenames {
do {
let url = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(sound, ofType: "mp3")!)
let audioPlayer = try AVAudioPlayer(contentsOfURL: url)
audioPlayers.append(audioPlayer)
} catch {
//Catch error thrown
audioPlayers.append(AVAudioPlayer())
}
}
}
@IBAction func buttonPressed(sender: UIButton) {
let audioPlayer = audioPlayers[sender.tag]
audioPlayer.play()
}
@IBAction func stop(sender: UIButton) {
audioPlayer.stop()
}
}
可以工作......但只適用於播放的第一個聲音文件,即與停止按鈕具有相同標記的文件。我想停止按鈕停止所有的聲音,不管他們的標籤。 – dwinnbrown