19 Stimmen

MediaPlayer funktioniert seit r10 nicht mehr auf dem Emulator?

protected MediaPlayer _mediaPlayer;  

protected void playFromResource(int resId)     
    {     
    if (_mediaPlayer != null)         
        {         
        _mediaPlayer.stop();         
        _mediaPlayer.release();
        }     
    _mediaPlayer = MediaPlayer.create(this, resId);
    _mediaPlayer.start();
    }  

Dieser Code funktionierte sowohl auf dem Emulator als auch auf den Geräten einwandfrei. Seit einiger Zeit (ich denke, es ist seit ich auf ADT r10 aktualisiert) es funktioniert nur auf Geräten. Auf dem Emulator gibt es keinen Ton mehr und die Anwendung friert ein, wenn sie durch on _mediaPlayer.release() (das zweite Mal, wenn die Funktion aufgerufen wird). Ich konnte die Anwendung vor dem Absturz bewahren, indem ich die stop() y release() par reset() aber das Hauptproblem ist damit nicht gelöst: Es gibt keinen Ton auf dem Emulator.

die Protokolldatei zeigt mir eine Reihe von diesen (nur auf dem Emulator) direkt nach dem Aufruf von start()

03-09 19:14:30.716: WARN/AudioTrack(34): obtainBuffer timed out (ist die CPU ausgelastet?) 0x1afb8 user=00001e00, server=00000600

Irgendwelche Anhaltspunkte ????

22voto

g_pass Punkte 691

Ich hatte dieses Problem auf meinem MacBook Pro und stellte fest, dass ich mein Bluetooth ausschalten musste, bevor ich den Emulator starten konnte.

11voto

Jan Sindberg Punkte 459

Ich sehe dieses Problem auch unter Mac OS. In meinem Fall passiert es, wenn Sie "Snapshot" für den Emulator aktivieren.
http://code.google.com/p/Android/issues/detail?id=14953
Sie müssen den Emulator löschen und einen neuen Emulator ohne aktivierten "Snapshot" erstellen.

4voto

Regis St-Gelais Punkte 3086

Es sieht so aus, als ob das Problem nur auf meinem Computer besteht. Ich habe es gerade auf einem anderen Computer ausprobiert und es funktioniert einwandfrei. Ich hatte einige Probleme, als ich auf r10 von ADT aktualisiert habe. Vielleicht ist etwas in meinem Entwicklungssetup falsch.

2voto

Al Mamun Punkte 802

In meinem Fall hilft es, den Emulator manuell zu starten.

emulator Programm finden Sie unter android-sdk/tools/ .

Der abschließende Befehl wird also etwa so lauten:

android-sdk/tools/emulator -avd my_cool_emulator_name

0voto

MackTheKnife Punkte 91

Vergewissern Sie sich, dass Sie das MediaPlayer-Zustandsdiagramm lesen und alle erforderlichen Aktionen ausführen, wenn Sie Ihr MediaPlayer-Objekt schließen; wenn Sie es nicht anhalten, zurücksetzen und neu starten, befindet es sich beim nächsten Versuch, es zu verwenden, in einem inkohärenten Zustand, so dass Sie es nicht starten können.

Für Einzelheiten: http://developer.Android.com/reference/Android/media/MediaPlayer.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X