【问题标题】:Playing music in Swift: Unexpectedly found nil while unwrapping an Optional value在 Swift 中播放音乐:在展开 Optional 值时意外发现 nil
【发布时间】:2017-10-18 04:09:13
【问题描述】:

在做一个项目时,我决定添加一些音乐以在触发某个动作时播放。这是我得到的:

var player : AVAudioPlayer?

几行之后...

func playSound(){
    let alertSound = URL(fileURLWithPath: Bundle.main.path(forResource: "Kalimba", ofType: "wav")!)
    print(alertSound)

    try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    try! AVAudioSession.sharedInstance().setActive(true)

    try! player = AVAudioPlayer(contentsOf: alertSound)
    player!.prepareToPlay()
    player!.play()
}

每当我尝试这个时,触发操作时 xcode 都会向我抛出一个致命错误,说:

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

【问题讨论】:

标签: swift


【解决方案1】:

您应该检查您的音乐文件是否附有您的目标? -

    let path = Bundle.main.path(forResource: "Kalimba", ofType: "wav")
    if path != nil {
        let url = URL(fileURLWithPath: path!)
        print(url)
        let player = AVPlayer(url: url)
        let playerLayer = AVPlayerLayer(player: player)
        playerLayer.frame = self.view.bounds
        self.view.layer.addSublayer(playerLayer)
        player.play()
   } else {
        print("File Not exist")
   }

【讨论】:

  • 如何附加目标?
  • 从 xcode 导航器区域(xcode 中的左侧)然后从检查器(xcode 中的右侧)中选择您的音乐文件,然后在目标成员上进行复选标记,如上屏幕所示。
  • 完美,谢谢!终于让它工作了,我的问题是目标附件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 2019-09-23
  • 1970-01-01
相关资源
最近更新 更多