以下是导致错误的代码:
import UIKit
import AVFoundation
class ViewController: UIViewController {
var BackgroundAudio = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: Bundle.mainBundle.pathForResources( "Music", ofType: "mp3")!),error: nil)
}
编辑:我正在创建一个有音频的岩石剪刀游戏。这是我的代码:
import UIKit
import AVFoundation
class ViewController: UIViewController {
let backgroundAudio : AVAudioPlayer = {let url = Bundle.main.url(forResource: "Music", withExtension: "mp3")!
return try! AVAudioPlayer(contentsOf: url)
}()
let controller = ViewController()
controller.backgroundAudio.play()
@IBOutlet weak var cpuImage: UIImageView!
@IBOutlet weak var playerImage: UIImageView!
@IBOutlet weak var cpuScore: UILabel!
@IBOutlet weak var playerScore: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func rockButtonPressed(_ sender: Any) {
playerMove = 1
playerImage.image = UIImage(named: "playerRock.png")
computerChoice(cpuImage: cpuImage)
determineWinner(player: playerScore, cpu: cpuScore)
}
@IBAction func paperButtonPressed(_ sender: Any) {
playerMove = 2
playerImage.image = UIImage(named: "playerPaper.png")
computerChoice(cpuImage: cpuImage)
determineWinner(player: playerScore, cpu: cpuScore)
}
@IBAction func scissorButtonPressed(_ sender: Any) {
playerMove = 3
playerImage.image = UIImage(named: "playerScissor.png")
computerChoice(cpuImage: cpuImage)
determineWinner(player: playerScore, cpu: cpuScore)
}
}
希望这能帮助
您将Swift 2和3代码混合在一起,即使在Swift 2中也没有pathForResources
(复数)API。
如果您正在寻找URL,请使用与URL相关的API:
Bundle.main.url(forResource: "Music", withExtension: "mp3")
和CCD_ 2初始化器CCD_ 3
do {
let url = Bundle.main.url(forResource: "Music", withExtension: "mp3")!
let backgroundAudio = try AVAudioPlayer(contentsOf: url)
} catch {
print(error)
}
在这种情况下,你甚至可以写
let url = Bundle.main.url(forResource: "Music", withExtension: "mp3")!
let backgroundAudio = try! AVAudioPlayer(contentsOf: url)
因为初始化器总是成功的(如果不成功,那就是设计错误)。
编辑:
这是一种创建带有关闭的音频播放器的方法
class ViewController: UIViewController {
let backgroundAudio : AVAudioPlayer = {
let url = Bundle.main.url(forResource: "Music", withExtension: "mp3")!
return try! AVAudioPlayer(contentsOf: url)
}()
}
并播放声音
let controller = ViewController()
controller.backgroundAudio.play()
PS:如果存在本地Swift对应(URL
),则不要使用像NSURL
这样的NS...
类
您在第一行中调用的函数不再是这样命名的。使用这个替代:
var BackgroundAudio = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: Bundle.main.path(forResource: "Music", ofType: "mp3")!),error: nil)