Wie erkenne ich, wann der Soundeffekt zu Ende ist?

Ich verwende SimpleAudioEngine und versuche zu erkennen, ob ein Soundeffekt beendet ist, bevor ich fortfahre.

Ich suche nach einer Methode, aber die, die ich implementieren möchte, funktioniert nicht!

CDSoundEngine *engine = [CDAudioManager sharedManager].soundEngine;    
ALuint soundId = [[SimpleAudioEngine sharedEngine] playEffect:soundId];

float seconds = [engine bufferDurationInSeconds:soundId];

Jedes Mal, wenn ich bufferDurationInSeconds verwende, wird ein Gleitkommawert von -1 für variable Sekunden zurückgegeben. Ich habe die Implementierung überprüft und es wird ein -1 zurückgegeben, wenn die ID nicht gültig ist, aber ich bin zu 100% der ID gültig!

Kann mir jemand bei diesem Problem helfen oder mir einen anderen Weg vorschlagen, um das Ende eines Soundeffekts zu erkennen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage