これは初めてSKAudioNodeを使用する場合です。最初に私は私のGameScene
クラスの最上部にプロパティを宣言:fileNamedを使用してSKAudioNodeを初期化すると、nilが返されます
var backgroundMusic: SKAudioNode!
私はヘルパーメソッドを追加しました:
func playBackgroundMusic(name: String) {
if backgroundMusic != nil {
backgroundMusic.removeFromParent()
}
backgroundMusic = SKAudioNode(fileNamed: name)
backgroundMusic.autoplayLooped = true
addChild(backgroundMusic)
}
は今、私はこのように、このメソッドを呼び出した:
playBackgroundMusic("ABC.caf")
それこの行に致命的なエラーが発生します。
backgroundMusic.autoplayLooped = true
Saying:予期せぬものが見つかりました。
は私が- ABC.cafは私のプロジェクトであり、コピーバンドルのリソースにリストされている、次のことを確認しました。
- 正しく入力されています。
他にどこでエラーをチェックする必要がありますか?
EDIT:
- のXcodeのiOS 9.3とiOSの9.3.2
- シミュレータで7.3
- iPhone
両方:ここ
は私の構成情報ですデバイスとシミュレータが動作しません。
EDIT2:
私を次のように私のコードを変更:
func playBackgroundMusic(name: String) {
if backgroundMusic != nil {
backgroundMusic.removeFromParent()
}
let temp = SKAudioNode(fileNamed: name)
temp.autoplayLooped = true
backgroundMusic = temp
//backgroundMusic = SKAudioNode(fileNamed: "SpaceGame.caf")
//backgroundMusic.autoplayLooped = true
addChild(backgroundMusic)
}
今、私のアプリはもうクラッシュしませんが、それは何の音を持っていません。何か案は?
P.S.最後にその質問を編集した後、その方法のすべてを次のものに置き換えようとしました:
runAction(SKAction.playSoundFileNamed(name, waitForCompletion: false))
サウンドがまだありません。おそらくサウンドファイルの問題?
あなたはXcode 7.3を正しく使用していますか? http://stackoverflow.com/q/36273271/3402095私にとって間違ったファイル名を指定してもXcode 7.1.1を使用すると、 'backgroundMusic'はnilとして終わることはなく、何らかの"空の "SKAudioNode 。それでも、クラッシュすることはありません。ちなみに、サウンドを再追加しようとしましたか?あなたは知っている、それをプロジェクトから削除し、次に製品 - >きれいに行く、プロジェクトに同じ音を再びドラッグし、バンドルリソースのコピーセクションに追加...これはいくつかの奇妙なキャッシングの問題に関連していない私はそれを疑います)。 – Whirlwind
@Whirlwindはい、Xcode 7.3を使用しています。私は、音楽ファイルを削除して、プロジェクトに戻してそれを再び追加して、きれいにしました。それでも、オプションがアンラッピングされている間にnilが見つかったのでクラッシュします。 –
"ABC.caf"の代わりに "ABC"だけを試しましたか? –