播放/暂停音频按钮 Swift

Posted

技术标签:

【中文标题】播放/暂停音频按钮 Swift【英文标题】:Play/Pause Audio Button Swift 【发布时间】:2017-06-26 03:54:10 【问题描述】:

我是 swift 新手,似乎无法弄清楚这一点。我试图让一个按钮既充当循环音频的播放按钮,又充当暂停按钮(如果再次单击)。我尝试使用 if/else 语句,但我不断收到此错误“致命错误:在展开可选值时意外发现 nil”

代码可以在没有 if/else 语句的情况下工作,但是,在这种情况下,它会无限循环,无法暂停。

有什么建议吗?

 var hihat16: AVAudioPlayer!

     @IBAction func hat16(_ sender: Any) 
        if hihat16.isPlaying == false 
    let path = Bundle.main.path(forResource: "Hat 017-1.aif", ofType:nil)!
    let url = URL(fileURLWithPath: path)

    do 
    let sound = try AVAudioPlayer(contentsOf: url)
    hihat16 = sound
    sound.play()
    hihat16.numberOfLoops = -1


     catch 
    // couldn't load file :(
    
        else hihat16.stop()

代码和错误信息的图片:

【问题讨论】:

您的代码正在崩溃,因为您在初始化之前使用了 hithat16。即在 if 语句中。 【参考方案1】:

试试这个。

在你的 viewDidLoad 中执行它

let path = Bundle.main.path(forResource: "Hat 017-1.aif", ofType:nil)!
let url = URL(fileURLWithPath: path)
do 
hihat16 = try AVAudioPlayer(contentsOf: url)
hihat16.numberOfLoops = -1
 catch 

然后在您的@IBAction 中您可以执行此操作。

if !hihat16.isPlaying 
hithat16.play()

else hithat.stop()

【讨论】:

以上是关于播放/暂停音频按钮 Swift的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用按钮自动播放音频和播放/暂停?

播放和暂停按钮正在工作...但是如何重置按钮以在音频结束后显示播放符号?

在 HTML 音频播放器中切换播放/暂停按钮

切换播放/暂停按钮(多个音频)

正在播放当前音频以及如何在单击同一按钮时暂停所有其他音频

jQuery - 切换播放/暂停按钮(多个音频)