2010-11-27 4 views
4

Das ist eine schwierige Frage:/Android Mediaplayer verursacht Spiel mit einzufrieren „AudioHardware PCM- Wiedergabe wird in den Standby“

Ich bin ein Musik-basierte Android-Spiel a la Audiosurf machen. Es funktioniert alles gut, bis auf ein paar Sekunden vor dem Ende eines Songs (der mit einem normalen MediaPlayer abgespielt wird) hört die Musik kurz auf und das ganze Spiel (einschließlich UI) friert für einige Sekunden ein.

Jedes Mal, wenn das passiert, sehe ich eine "AudioHardware PCM-Wiedergabe geht in den Standby" -Fehler in Logcat.

googeln mich zu dem Schluss geführt, dass

  • dies ein HTC Hero spezifisches Problem sein könnte (kann nicht auf Emulator oder anderen Geräten wiedergegeben werden)
  • Diese Nachricht normalerweise wird protokolliert, wenn ein HTTP-Stream isn‘ t schnell genug für Mediaplayer
  • Audio in Android im allgemeinen

saugt Als ich die mp3 bin Decodierung mit dem NDK + libmpg123 für Audio-Analyse schon könnte ich jus aswell t spiele das Audio selbst (unter Verwendung einer sehr hässlichen Schnittstelle zwischen NDK C-Code und einem AudioTrack in Java).

Gibt es einen Fix/Workaround für diesen Fehler oder sollte ich wirklich so gehen? (Ich habe nur noch begrenzte Zeit, um dieses Projekt abzuschließen)

Ich schätze jeden Hinweis!

+0

aktuelle Problemumgehung: Ausblenden Song 3 Sekunden vor dem Ende und stoppen Sie es. –

Antwort

0

Sie könnten die Musik stoppen, wenn Sie alles in Ihrem C-Code gepuffert haben. Da die AudioTrack eine Verzögerung aufweist, müssen Sie möglicherweise länger auf das Ende warten.

Ich würde jedoch mehr Details über Ihren Code benötigen, um zu helfen.

+0

Ich glaube, ich habe deine Frage falsch gelesen. Wenn es nur auf einem bestimmten Gerät passiert, wird meine Antwort wahrscheinlich nicht helfen. –

+0

Ja, es ist wirklich gerätespezifisch - benutze jetzt einen Workaround (fade out 3s vor dem Ende aus) –