zurück Dies ist das erste Mal, dass ich SKAudioNode verwende. Zuerst erklärte ich eine Immobilie an der Spitze meiner GameScene
Klasse:Initialisierung von SKAudioNode mit fileNamed gibt
var backgroundMusic: SKAudioNode!
Jetzt habe ich eine Hilfsmethode hinzugefügt:
func playBackgroundMusic(name: String) {
if backgroundMusic != nil {
backgroundMusic.removeFromParent()
}
backgroundMusic = SKAudioNode(fileNamed: name)
backgroundMusic.autoplayLooped = true
addChild(backgroundMusic)
}
Nun rief ich diese Methode wie folgt aus:
playBackgroundMusic("ABC.caf")
Es löst einen schwerwiegenden Fehler in dieser Zeile aus:
backgroundMusic.autoplayLooped = true
Sprichwort: Unerwartetes gefunden nil beim Entpacken optionaler Wert.
habe ich sicher, dass die
- ABC.caf in meinem Projekt und wird in den Kopier Bündel Ressourcen aufgeführt folgenden machen.
- Es ist richtig geschrieben.
Wo sonst sollte ich auf Fehler überprüfen?
EDIT:
Hier sind meine Konfiguration Info:
- Xcode 7.3
- iPhone mit iOS 9.3.2
- Simulator mit iOS 9,3
Sowohl die Gerät und der Simulator funktioniert nicht.
EDIT2:
Ich änderte meine Codes auf die folgenden:
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)
}
Jetzt ist meine App stürzt nicht mehr, aber es hat keine Geräusche. Irgendwelche Ideen?
P.S. Wenige Minuten, nachdem ich diese Frage zuletzt bearbeitet habe, habe ich versucht, alles in dieser Methode zu ersetzen mit:
runAction(SKAction.playSoundFileNamed(name, waitForCompletion: false))
Noch kein Ton. Vielleicht ein Problem mit der Sounddatei?
Sie sind auf Xcode 7.3 richtig? http://StackOverflow.com/q/36273271/3402095 Für mich, wenn ich Xcode 7.1.1 verwende, auch wenn ich einen falschen Dateinamen gebe, wird "backgroundMusic" nicht als nil enden, sondern eher mit einer Art "leerem" SKAudioNode . Trotzdem wird es nicht abstürzen. Haben Sie übrigens versucht, den Sound wieder hinzuzufügen? Sie wissen, löschen Sie es aus dem Projekt, gehen Sie dann auf Product-> clean, ziehen Sie den gleichen Sound erneut in das Projekt und fügen Sie es dem Abschnitt Copy Bundle Resources hinzu ... Nur um zu sehen, ob dies nicht mit einem seltsamen Caching-Problem zusammenhängt Ich bezweifle das). – Whirlwind
@Whirlwind Ja, ich bin auf Xcode 7.3. Ich habe versucht, die Musikdatei zu löschen und sie erneut zum Projekt hinzuzufügen, und habe einen Clean durchgeführt. Immer noch stürzt es ab, weil es beim Entpacken ein optionales Nil gefunden hat. –
Hast du es mit "ABC" anstelle von "ABC.caf" versucht? –