当我尝试运行我的代码时,我在代码中上面标题中的错误提示
audioPlayer =尝试AVAudioPlayer(contentsOf:url)
在我将Xcode更新为Xcode 11之前,此代码就像一个魅力一样工作,现在使用Swift 5,我不得不对其进行更改,现在它不起作用。有人可以帮帮我吗?这是我的代码
import UIKit
import AVFoundation
class ViewController: UIViewController, AVAudioPlayerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
playAudio()
}
@IBAction func playButton(_ sender: Any) {
playAudio()
}
var indexPath = 0
var listOfTheSongs = ["badLiar.mp3", "cool.mp3", "eastSide.mp3", "fallinAllInYou.mp3", "hateHowMuchILoveYou.mp3", "inMyBlood.mp3", "letMeDownSlowly.mp3", "loveYourself.mp3", "panini.mp3", "rewriteTheStars.mp3", "stiches.mp3", "treatYouBetter.mp3", "wow.mp3"]
var audioPlayer = AVAudioPlayer()
var path = Bundle.main.path(forResource: "badLiar.mp3" , ofType: nil , inDirectory: "Songs For Lyric Hunt")!
func playAudio () {
if path != nil {
print("path does not equal nil")
let url = URL(fileURLWithPath: path)
do {
audioPlayer = try AVAudioPlayer(contentsOf: url)
if audioPlayer.isPlaying == true {
audioPlayer.stop()
} else {
audioPlayer.play()
}
} catch {
// couldn't load file :(
print("counldn't load file :(")
}
}else {
print(" path equals to nil")
}
}
}
答案 0 :(得分:1)
参考此answer,您需要像下面那样初始化AVAudioPlayer:
var audioPlayer: AVAudioPlayer!
用上面的行替换您的var audioPlayer = AVAudioPlayer()
。
这应该可以解决崩溃问题。似乎是iOS 13.1出现了问题
答案 1 :(得分:0)
您是否已将框架添加到项目中? 如果没有,请尝试
在游戏/应用程序的常规标签中框架,库和嵌入式内容 单击 + 并键入或搜索AVFoundation.framework
希望有帮助