【问题标题】:Swift - AVAudioPlayer not playing soundSwift - AVAudioPlayer 不播放声音
【发布时间】:2016-03-31 09:32:42
【问题描述】:

我有一个名为speeding.mp3 的声音,我正在尝试通过在类的根目录中使用它来创建一个 AVAudioPayer 实例:

let speedingAudioPlayer = try! AVAudioPlayer(contentsOfURL: NSBundle.mainBundle().URLForResource("speeding", withExtension: "mp3")!)

然后,当我运行应用程序时,它会引发错误,但我不知道为什么会这样。 speeding.mp3 文件位于 Build Phases 的 Bundle Resources 下拉列表中,因此它应该可以找到它。如果我尝试在模拟器中打印出 URL 并将其粘贴到 Safari 中,它会像往常一样加载和播放文件。我正在将 AVFoundation 导入到类中,并将框架导入到项目中。

【问题讨论】:

    标签: ios swift avfoundation avaudioplayer


    【解决方案1】:

    使用这段代码 sn-p 来调试你的错误,

    if let URL = NSBundle.mainBundle().URLForResource("speeding", withExtension: "mp3") {
        do {
            let speedingAudioPlayer = try AVAudioPlayer(contentsOfURL: URL)
        } catch  let error as NSError {
            print(error.localizedDescription)
        }
    } else {
        print("No such file exist")
    }
    

    【讨论】:

    • 它只是停在第三行并出现错误说Thread 1: breakpoint 1.2
    • 您能否列出例外情况,具体说明了什么?
    • 它什么也没说,只在运行时发生。
    • 好的,放异常断点并使用调试器看看那里实际发生了什么
    • 好吧,现在除了查看您的代码之外别无他法。您能以某种方式将其放在 Dropbox 或 github 中,以便我可以查看它。
    【解决方案2】:

    我发现另一个问题是将 var 放在类之外,否则它会被电话释放。

    AVAudioPlayer Object Sound Not Playing - Swift

    【讨论】:

      【解决方案3】:
      import UIKit
      import AVFoundation
      
      class CustomAudioPlayer {
        var audioPlayer : AVAudioPlayer!
      
        override func viewDidLoad() {
          super.viewDidLoad()
          playSound("sound_file_name")
        }
      
        func playSound(soundName: String)
        {
          let alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(soundName, ofType: "mp3")!)
          do{
              audioPlayer = try AVAudioPlayer(contentsOfURL:alertSound)
              audioPlayer.prepareToPlay()
              audioPlayer.play()
          }catch {
              print("Error getting the audio file")
          }
        }
      }
      

      试试这个代码来播放声音。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-10
        相关资源
        最近更新 更多