Swift AVAudioPlayer 不播放声音

Posted

技术标签:

【中文标题】Swift AVAudioPlayer 不播放声音【英文标题】:Swift AVAudioPlayer doesn't play sound 【发布时间】:2015-01-12 07:09:11 【问题描述】:

我想在我的 Swift 应用中播放两个声音文件。 “C1_bip.aif”和“false.aif”。 它们都在项目的同一个文件夹中。

但是当我启动应用程序时,会播放 C1_bip 声音,而不会播放虚假声音,并且会在控制台打印错误。

声音文件是相同的文件类型,我可以在 Xcode 的项目资源管理器中播放它们。

if let path = NSBundle.mainBundle().pathForResource("C1_bip", ofType: "aif") 
        audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path), 
        fileTypeHint: "aif", error: nil)

        if let sound = audioPlayer 

            sound.prepareToPlay()
            sound.play()
        
    
    else 
        println("Error")
    



   if let path = NSBundle.mainBundle().pathForResource("false", ofType: "aif") 
        audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path), 
        fileTypeHint: "aif", error: nil)

        if let sound = audioPlayer 

            sound.prepareToPlay()
            sound.play()
        
    
    else 
        println("Error")
    

【问题讨论】:

这段代码对我来说工作正常。所以检查你添加到项目中的文件。 我不知道怎么了。我将文件放在项目文件夹中,但它不起作用。但是之前存在的那个完美...... 使用此代码,我可以播放这两个文件。所以你应该尝试再次添加 false.aif 文件 并删除那个旧文件 【参考方案1】:

这是我在测试项目中所做的:

    let musicPath = NSBundle.mainBundle().pathForResource("bgmusic", ofType: "mp3")
    let url = NSURL(fileURLWithPath: musicPath!)

    do
        audioPlayer = try AVAudioPlayer(contentsOfURL: url)
    catch _ 
        audioPlayer = nil
    
    audioPlayer.numberOfLoops = -1
    audioPlayer.prepareToPlay()
    audioPlayer.play()

而且效果很好:)

【讨论】:

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

Swift AVAudioPlayer 不播放声音

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

AVAudioPlayer 不播放音频文件 - swift

Swift 3 多个 AVAudioPlayer

在其他 swift 文件中调用时,AVAudioPlayer 不会播放声音

swift AVAudioPlayer播放音频时声音太小