Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 检查AVAudioPlayer是否正在播放_Swift_Avaudioplayer - Fatal编程技术网

Swift 检查AVAudioPlayer是否正在播放

Swift 检查AVAudioPlayer是否正在播放,swift,avaudioplayer,Swift,Avaudioplayer,我一直在尝试检查AVAudioPlayer当前是否正在播放,但当我尝试以任何方式播放时,它崩溃了 我使用停止按钮停止音频,但当没有音频播放时,它会崩溃 如何在mystopaudio功能中检查它 首先,我定义: var audioPlayer = AVAudioPlayer() 我有停止按钮: func stopaudio(sender: AnyObject){ audioPlayer.stop() } 我试着这样检查: if audioPlayer.playing{ audi

我一直在尝试检查AVAudioPlayer当前是否正在播放,但当我尝试以任何方式播放时,它崩溃了

我使用停止按钮停止音频,但当没有音频播放时,它会崩溃

如何在my
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()

问题是因为AVAudioPlayer尚未初始化,所以我所做的是对其进行初始化,然后停止它

var soundURL: NSURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("013", ofType: "m4a")!)!
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: soundURL, error: &error)
audioPlayer.stop()

问题是因为AVAudioPlayer尚未初始化,所以我所做的是对其进行初始化,然后停止它

var soundURL: NSURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("013", ofType: "m4a")!)!
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: soundURL, error: &error)
audioPlayer.stop()

在ViewController类中声明函数:

func tryAudio() {
        do {
            try player = AVAudioPlayer(contentsOf: URL(fileURLWithPath: path!))
        } catch {
            //handle errors
        } 

    }

调用tryAudio()在player.stop()之前初始化player。在ViewController类中声明一个函数:

func tryAudio() {
        do {
            try player = AVAudioPlayer(contentsOf: URL(fileURLWithPath: path!))
        } catch {
            //handle errors
        } 

    }

调用tryAudio()在播放器之前初始化播放器。stop()

出现了什么错误?应该可以在条件中尝试println(true)检查audioPlayer!=无first@Christian,它像这样打印“(lldb)”并显示
audioPlayer.stop()
而不进行处理,当我处理它时,它指示这一行:
if audioPlayer.playing
您得到了什么错误?它应该可以在条件中尝试println(true)检查audioPlayer!=无first@Christian,它像这样打印“(lldb)”并显示
audioPlayer.stop()
而不进行处理,当我处理它时,它指示这一行:
if audioPlayer.playing
我在NSObject上有一个类,只用于处理应用程序的声音。当应用程序在启用声音的情况下重新启动时,应用程序正在崩溃,但播放器尚未初始化。我的解决方案覆盖了它的init方法,所以现在可以开始了。这也初始化了AVAudioPlayer,但以一种安全的方式,我在NSObject上有一个类,只是用来处理应用程序的声音。当应用程序在启用声音的情况下重新启动时,应用程序正在崩溃,但播放器尚未初始化。我的解决方案覆盖了它的init方法,所以现在可以开始了。这也初始化了AVAudioPlayer,但是以一种安全的方式