我一直在尝试检查AVAudioPlayer当前是否正在播放,但当我尝试以此方式进行时,它会崩溃。
我使用停止按钮来停止音频但是当没有音频播放时它会崩溃。
如何在我的stopaudio
功能中查看它?
首先我定义了:
var audioPlayer = AVAudioPlayer()
我有停止按钮:
func stopaudio(sender: AnyObject){
audioPlayer.stop()
}
我试着像这样检查:
if audioPlayer.playing{
audioPlayer.stop()
}
我使用以下代码播放音频:
var soundURL: NSURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("9", ofType: "m4a")!)!
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: soundURL, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
答案 0 :(得分:3)
问题是因为AVAudioPlayer还没有被初始化,所以我要做的就是初始化然后停止它。
var soundURL: NSURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("013", ofType: "m4a")!)!
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: soundURL, error: &error)
audioPlayer.stop()
答案 1 :(得分:2)
在ViewController类中声明一个函数:
func tryAudio() {
do {
try player = AVAudioPlayer(contentsOf: URL(fileURLWithPath: path!))
} catch {
//handle errors
}
}
调用tryAudio()在player.stop()
之前初始化播放器