为啥按下按钮时无法播放声音?

Posted

技术标签:

【中文标题】为啥按下按钮时无法播放声音?【英文标题】:Why can't I play sound when a button is pressed?为什么按下按钮时无法播放声音? 【发布时间】:2020-08-08 02:12:17 【问题描述】:

这是我编写的代码,但我不了解如何修复此错误。每次我运行应用程序时,构建都会成功,但是当我点击按钮/键时,它会给我这个错误。

线程 1:致命错误:在展开可选值时意外发现 nil

import UIKit
import AVFoundation

class ViewController: UIViewController 
    
    var player: AVAudioPlayer!
    
    override func viewDidLoad() 
        super.viewDidLoad()
    

    @IBAction func keyAPressed(_ sender: UIButton) 
        playSound()
    
    func playSound() 
        let url = Bundle.main.url(forResource: "C", withExtension: "wav")
        player = try! AVAudioPlayer (contentsOf: url!)
        player.play()
    


【问题讨论】:

你设置AVAudiosession类别了吗? 感叹号!告诉编译器您希望发生这种崩溃。我建议你学习使用调试器。以及如何设置断点。 【参考方案1】:

您收到错误是因为 url 不存在。

检查您是否指定了正确的文件名并将播放函数包装在do 块中以捕获任何其他错误。下面的代码没有任何错误。

func playSound() 
    guard let url = Bundle.main.url(forResource: "C", withExtension: "wav") else 
        print("File not found")
        return
    
    do 
        player = try AVAudioPlayer(contentsOf: url)
        player.play()
     catch 
        print(error)
    
    

【讨论】:

现在只是打印文件未找到文件未找到,然后当我修复该问题时,它不会播放任何声音 您是如何解决这个问题的?您的音频文件的名称是什么? 没关系,我没有解决这两个问题。以为我做到了,但我没有。它仍然只会打印未找到的文件,也不会播放任何声音 确保您已将名为C.wav 的音频文件添加到项目中。该错误清楚地表明您的项目文件夹中不存在这样的文件。

以上是关于为啥按下按钮时无法播放声音?的主要内容,如果未能解决你的问题,请参考以下文章

当我按下几个 Jbutton 时,无法播放多个声音

同时播放两个声音c#

按下按钮时循环播放声音

按下按钮时播放随机声音[重复]

为啥没有播放声音?

Swift,如何通过按下按钮一次又一次地播放声音