2016-08-16 3 views
0

Ich versuche einen Ton zu spielen, wenn zwei Objekte kollidieren, und ich bekomme diesen Fehler jedes Mal. Ich teste mein iPhone mit 6. Hier ist der Code:Fehler beim Versuch, Audio abzuspielen: 998: Fehler beim Einrichten des Tons, err = -50

guard soundEffects[sound] == nil else 
    { 
     print("Sound effect \(sound) already exists") 
     return false 
    } 

    guard let soundURL = NSBundle.mainBundle().URLForResource(sound, withExtension:format, subdirectory:path) else 
    { 
     print("Error creating URL for resource \(sound)") 
     return false 
    } 

    print(soundURL) 

    var systemID : SystemSoundID = id 

    soundEffects[sound] = systemID 
    print(AudioServicesCreateSystemSoundID(soundURL, &systemID)) 

    id += 1 

und ich versuche, es zu spielen, wie so:

guard soundEffects[sound] != nil else 
    { 
     print("Sound effect '\(sound)' not found") 
     return false 
    } 

    print(soundEffects[sound]!) 

    AudioServicesPlaySystemSound(soundEffects[sound]!) 

Das Format der Datei wav und ich ausgedruckt den Code Die Create-Methode, die 0 war. Ich kann auch keine Dokumentation über den Fehler auf der Apple-Website oder irgendwo anders im Web finden. Mache ich etwas falsch?

Update:

offenbar den Wert in einem Wörterbuch zu speichern und später geladen wird, was verursacht der Fehler angezeigt wird. Aber die Sache ist, dass ich ein Wörterbuch der IDs haben muss. Wie soll ich die ID speichern und warum verursacht die Speicherung den Fehler?

Antwort

0

konnte ich mein Problem beheben, indem dies zu tun:

let systemID : SystemSoundID = someUInt32 
soundEffects[sound] = systemID 
AudioServicesCreateSystemSoundID(soundURL, &soundEffects[sound]!) 
AudioServicesPlaySystemSound(soundEffects[sound]!) 

Es scheint, dass das Objekt, dass das Verfahren schaffen seine Aktionen ausführt auf das einzige Objekt ist, dass Sie spielen anrufen können, daher müssen Sie durchführen Die create-Methode speziell für die Instanz des Wörterbuchs (oder jedes Objekt, in dem Sie den Sound speichern möchten).

Verwandte Themen