iOS+Swift:为什么iPad上没有播放音乐?
iOS+Swift: Why is music not played on iPad?
我正在开发 SpriteKit 游戏并尝试播放循环音乐文件。这是我的代码:
var musicPlayer = AVAudioPlayer()
override func didMoveToView(view: SKView) {
self.playBackgroundMusic("gravity")
}
private func playBackgroundMusic(filename: String) {
do {
let url = NSBundle.mainBundle().URLForResource(filename, withExtension: "m4a")
print(url)
self.musicPlayer = try AVAudioPlayer(contentsOfURL: url!)
self.musicPlayer.numberOfLoops = -1
self.musicPlayer.prepareToPlay()
self.musicPlayer.play()
} catch let error as NSError {
print("ERROR: \(error.description)")
}
}
这在我的 iPhone 4S 上测试时有效,但在 iPad Air 上无效(只是没有音乐播放,但适用于 Youtube 等应用程序)。奇怪的是,当我的蓝牙耳机连接到 iPad 时,用耳机收听时它可以正常工作。
我的 iOS iPad Air 和 iPhone 4S 的版本都是 9.3.4。
有什么想法吗?这是 Apple 方面的错误吗?
好的,我找到了解决方法。在使用 AVAudioPlayer 播放任何音频之前尝试调用以下代码:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker)
} catch let error as NSError {
print("ERROR: \(error.description)")
}
希望这对某人有所帮助。
我正在开发 SpriteKit 游戏并尝试播放循环音乐文件。这是我的代码:
var musicPlayer = AVAudioPlayer()
override func didMoveToView(view: SKView) {
self.playBackgroundMusic("gravity")
}
private func playBackgroundMusic(filename: String) {
do {
let url = NSBundle.mainBundle().URLForResource(filename, withExtension: "m4a")
print(url)
self.musicPlayer = try AVAudioPlayer(contentsOfURL: url!)
self.musicPlayer.numberOfLoops = -1
self.musicPlayer.prepareToPlay()
self.musicPlayer.play()
} catch let error as NSError {
print("ERROR: \(error.description)")
}
}
这在我的 iPhone 4S 上测试时有效,但在 iPad Air 上无效(只是没有音乐播放,但适用于 Youtube 等应用程序)。奇怪的是,当我的蓝牙耳机连接到 iPad 时,用耳机收听时它可以正常工作。
我的 iOS iPad Air 和 iPhone 4S 的版本都是 9.3.4。
有什么想法吗?这是 Apple 方面的错误吗?
好的,我找到了解决方法。在使用 AVAudioPlayer 播放任何音频之前尝试调用以下代码:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker)
} catch let error as NSError {
print("ERROR: \(error.description)")
}
希望这对某人有所帮助。