检查AVAudioPlayer是否正在播放

时间:2015-05-18 11:58:33

标签: swift avaudioplayer

我一直在尝试检查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()

2 个答案:

答案 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()

之前初始化播放器