我收到错误:"bundle"类型的值没有成员"资源路径"



以下是导致错误的代码:

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)

最新更新