AVAudioPlayer在后台没有响应

时间:2016-02-06 01:10:57

标签: ios objective-c iphone swift avaudioplayer

当我的应用收到voip通知时,我正在后台播放音频。 但AVAudioPlayer表现得很奇怪,有时播放音频,有时也没有任何错误。 多数民众赞成我怎么玩:

func playAudio() {
    // Set the sound file name & extension
    let alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("testAudio", ofType: "wav")!)


    // Play the sound
    do {
        try audioPlayer = AVAudioPlayer(contentsOfURL: alertSound)
        audioPlayer.delegate = self
        if (audioPlayer.prepareToPlay()) {
            audioPlayer.play()
        }
        else {NSLog("there is error")}

    } catch {
        NSLog("there is \(error)")
    }
}

我在AppDelegate应用程序函数中初始化AVAudioSession:

    do
    {
        audioPlayer = AVAudioPlayer()
        audioSession = AVAudioSession()            
        try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: [AVAudioSessionCategoryOptions.MixWithOthers])
        try audioSession.setActive(true)
        try audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker)
    }
    catch {
        NSLog("there is \(error)")
    }

当然还有var audioPlayer: AVAudioPlayer!作为类动词

它在第一或第二分钟工作,然后AVAudioPlayer停止响应而没有任何错误。 我甚至尝试使用AVAudioPlayerDelegate来接收事件,但没有任何事情发生。

有人可以解释这种行为吗?这是ios中的一个错误吗?或者我做错了什么?  在Ios 9.2,iphone 6设备,xcode 7.2上测试。

感谢。

0 个答案:

没有答案