AVAudioPlayer 不播放音频文件 - swift

Posted

技术标签:

【中文标题】AVAudioPlayer 不播放音频文件 - swift【英文标题】:AVAudioPlayer does not play audio file - swift 【发布时间】:2018-10-09 17:49:57 【问题描述】:

我知道这看起来很简单,但奇怪的是 AVAudioPlayer 不播放音频文件。我有这个代码。它不是通过捕获并且仍然没有播放声音。我检查了物理设备、模拟器并检查了音量。但是还是听不到声音。

//in ViewController as a property
let soundEffect: AVAudioPlayer!

//in viewDidLoad
let path = Bundle.main.path(forResource: "success.mp3", ofType:nil)!
    let url = URL(fileURLWithPath: path)
    do 
        soundEffect = try AVAudioPlayer(contentsOf: url)
        soundEffect.prepareToPlay()
        soundEffect.play()
     catch let error as NSError 
        print(error.description)
    

我也试过let path = Bundle.main.path(forResource: "success", ofType:"mp3")!,但没有任何区别。

【问题讨论】:

【参考方案1】:

尝试将您的 AVAudioPlayer 设为实例变量。否则 soundEffect 在 do 循环结束时被释放。

【讨论】:

还是没有声音 展示您如何更改代码来完成此操作。 你确定这是你正在使用的代码吗,因为它不能为我编译。原因是soundEffect 变量是一个 let,因此必须在视图控制器 init 中初始化,而不是在 viewDidLoad 中。为此,它应该是一个 var。如果我这样做,我的测试 mp3 可以正常播放。 iVar 在这里工作得很好。谢了!

以上是关于AVAudioPlayer 不播放音频文件 - swift的主要内容,如果未能解决你的问题,请参考以下文章

AVAudioPlayer 突然不再播放整个音频源

AVAudioPlayer 持续时间与音频文件的实际持续时间不匹配

如何用AVAudioPlayer依次播放多个音频文件

AVAudioPlayer 15 次不播放音频

OCiOS开发:音频播放器 AVAudioPlayer

使用 AVAudioPlayer 播放多个音频文件