sprite-kit - SpriteKit 不使用 SKAudioNode 或 SKAction.playSoundFileNamed 播放任何音乐
问题描述
我正在努力解决一个问题,即 SKAudioNode 和 SKAction.playSoundFileNamed 都不能帮助我在项目中播放音乐。音频文件格式为 mp3、wav 或 m4a
我检查了它是否适用于另一个项目。但它仍然发生。我认为这将是一个可重现的问题,所以我将在此处附上我的代码(* 如果下面的代码在您的电脑上工作,请在评论中通知我。)
import SpriteKit
import GameplayKit
import AVFoundation // Needed...?
class GameScene: SKScene {
override func didMove(to view: SKView) {
let foo = SKAudioNode(fileNamed: "sample")
self.addChild(foo)
}
override func keyDown(with event: NSEvent) {
switch event.keyCode {
case 49:
let bar = SKAction.playSoundFileNamed("bubble", waitForCompletion: false)
self.run(bar)
default:
print("keyDown: \(event.characters!) keyCode: \(event.keyCode)")
}
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
}
}
我只想播放 sample.wav 作为背景音乐,当按下 Space 时,播放 bubble.mp3 作为音效
下面的错误输出
[AudioHAL_Client] AudioHardware.cpp:666:AudioObjectGetPropertyData: AudioObjectGetPropertyData: no object with given ID 0
SKAction: Error loading sound resource: "bubble"
谢谢你。
解决方案
就我而言,音频文件位于 Assets.xcassets 中。但这是错误的。只需将所有音频文件放在项目组下。
推荐阅读
- c# - 如何在模型中对 SelectList 进行硬编码?
- java - 如何添加到存储在 BeanMap 中的列表?
- tensorflow - 如何从冻结图生成配置文件
- python - 过滤数据集中的多个分配
- r - 如何从服务器/用户界面外部访问存储在 server.R 中的数据
- html - 如何使焦点属性保持不变,直到我单击另一个按钮
- angular6 - 如何在 ng-select 中搜索多个字段?
- flutter - 快照错误类型“int”不是“String”类型的子类型
- c++ - 如何使用灵活的碰撞库在两个点云或点云与机器人末端执行器模型之间进行碰撞检测?
- c - 如何在 Windows 上使用 C 读取和写入原始数据到 USB 驱动器