iOS Swift:声音没有播放

Posted

技术标签:

【中文标题】iOS Swift:声音没有播放【英文标题】:iOS Swift: Sound not playing 【发布时间】:2015-06-22 17:42:00 【问题描述】:

在我的 ios Swift 应用程序中,我试图通过单击按钮播放声音。

func playSound()
    
        var audioPlayer = AVAudioPlayer()
        let soundURL = NSBundle.mainBundle().URLForResource("doorbell", withExtension: "mp3")
        audioPlayer = AVAudioPlayer(contentsOfURL: soundURL, error: nil)
        audioPlayer.play()

我正在 iOS iPhone 模拟器中运行该应用程序。 我已将 doorbell.mp3 添加到应用程序中。在调试模式下,我可以看到 soundURL 有一个值,它不是 nil。

没有错误,但声音不播放。

【问题讨论】:

检查您计算机上的音量 Arbitur> 音量很好,我可以在应用程序外播放doorbell.mp3 文件。所以要么我的代码错误,要么与模拟器有关.... 【参考方案1】:

您只需要将您的 audioPlayer 的声明移出您的方法。试试这样:

Swift 3 或更高版本

var audioPlayer = AVAudioPlayer()

func playSound() throws 
    let url = Bundle.main.url(forResource: "doorbell", withExtension: "mp3")!
    audioPlayer = try AVAudioPlayer(contentsOf: url)
    audioPlayer.prepareToPlay()
    audioPlayer.play()


do  
    try playSound() 
 catch  
    print(error)

【讨论】:

Leo> 是的,这行得通...谢谢,如果您也能添加一个小解释,说明为什么搬出时这行得通。 如果你在方法中声明你的播放器,它会在执行完你的方法后立即消失。

以上是关于iOS Swift:声音没有播放的主要内容,如果未能解决你的问题,请参考以下文章

来自 URL iOS Swift 的本地通知自定义声音

在 spritekit swift 中触摸节点时没有播放声音

基于Swift的iOS应用程序开发:录音及播放声音

基于Swift的iOS应用程序开发:录音及播放声音

基于Swift的iOS应用程序开发:录音及播放声音

AVAudioPlayer Swift 3不播放声音[重复]