【发布时间】:2016-06-24 03:56:56
【问题描述】:
我正在为一个简单的任务苦苦挣扎:加载 SpriteKit 场景时在后台播放音频文件。
我将一个名为“Test Song.wav”的音频文件复制到了我的项目中,当我查看“构建阶段”>“复制捆绑资源”(这是this post 建议检查的内容)时,它也在我的资产中找到为)
我的代码编译得很好,我的ring/silent switch 正确地转为响铃,但是在场景加载时音频没有播放。
我正在使用
- Xcode 版本 8.0 测试版
- 运行 iOS 10 Beta 1 的 iPhone 6S Plus
这是我损坏的代码:
import AVFoundation
class GameScene: SKScene {
override func didMove(to view: SKView) {
if let path = Bundle.main().pathForResource("Test Song", ofType: "wav") {
let filePath = NSURL(fileURLWithPath:path)
let songPlayer = try! AVAudioPlayer.init(contentsOf: filePath as URL)
songPlayer.numberOfLoops = 0
songPlayer.prepareToPlay()
songPlayer.play()
}
}
}
注意:我了解到在 Swift 3.0 中,AVAudioPlayer 的 init() 方法不再接受 NSError 参数,所以这段代码不编译:
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
【问题讨论】:
-
您好,感谢您的审核努力,您在技术上是正确的,这是重复的。我不想争论:我真的很好奇这个网站是如何运作的。考虑到这一点:我不禁想知道为什么我的帖子不能独立存在而不会因为没有用而被否决。我把它做成了一个“问答”风格的帖子,所以没有人浪费时间在需要/试图回答它上,它是用 Swift 3.0 和 iOS 10 编写的,我引用了我所有的来源。如果我不知道你链接到的帖子存在,我怎么知道要对那个帖子发表评论而不是自己发帖?
标签: ios sprite-kit avaudioplayer swift3 xcode8