wake-up-neo.com

Fehlercodes für Android MediaPlayer?

Ich habe Probleme damit, einen Live-Radio-Stream für Android zu bekommen. Ich benutze die Klasse MediaPlayer und setze nur die URL und spiele sie ab. Es funktioniert großartig, aber nach 5-30 Minuten stirbt es unweigerlich. Auf 2.1-Handys (genauer gesagt einem Helden) erhalte ich diese Protokollausgabe

W/MediaPlayer( 7919): info/warning (1, 26)
I/MediaPlayer( 7919): Info (1,26)
I/MediaStreamService( 7919): mPlayer info code:1  extra:26
E/MediaPlayer( 7919): error (1, -11)
E/MediaPlayer( 7919): Error (1,-11)

Wo MediaStreamService mein Service ist, der die MediaPlayer enthält, kommt die Ausgabe von der OnInfoListener

Auf 2.2-Telefonen erhalte ich nie den Rückruf OnInfoListener, der Stream stirbt einfach ab. Aber ich sehe das im Logcat

E/HTTPStream( 1020): recv failed, errno = 11 (Try again)
E/HTTPDataSource( 1020): retrying connection failed

Scheint auf meinem 1.6-Handy trotz des ständigen logcat-Spam von einwandfrei zu funktionieren

E/PlayerDriver( 82): Invalid percentage value <big growing number>

Meine Frage ist, was bedeuten die Fehlercodes (1, 26)? Was verursacht einen Absturz meines mediaPlayer? Hat das 2.1-Problem überhaupt etwas mit dem 2.2-Problem zu tun? Danke, Nathan

Bearbeiten: Ich habe im Quellcode nach OnInfoListener gesucht und public static final int MEDIA_INFO_UNKNOWN = 1; gefunden. Ich weiß nicht genau, was es bedeutet, und kann auch nicht herausfinden, wo diese Extras aufbewahrt werden. oder wofür diese 26 steht wäre sehr dankbar.

18
schwiz

Meine Frage ist, was bedeuten die Fehlercodes (1, 26)?

  • 26 bedeutet PVMFInfoErrorHandlingStart, nur eine Fehleranzeige

Der Fehler ist -11, was PVMFErrimeout bedeutet. Sie können die Definitionsdateien hier auschecken Linktext

31
swcai

Möglicherweise RDS-Daten? Stellen Sie die Puffergröße manuell ein?

0
ykatchou

Um die Wiedergabe zu starten, muss start () aufgerufen werden. Nachdem start () erfolgreich zurückgegeben wurde, befindet sich das MediaPlayer-Objekt im Status Gestartet. isPlaying () kann aufgerufen werden, um zu testen, ob sich das MediaPlayer-Objekt im Status "Gestartet" befindet.

Im Status Started ruft die interne Player-Engine eine vom Benutzer angegebene OnBufferingUpdateListener.onBufferingUpdate () - Callback-Methode auf, wenn zuvor ein OnBufferingUpdateListener über setOnBufferingUpdateListener (OnBufferingUpdateListener) registriert wurde. Dieser Rückruf ermöglicht es Anwendungen, den Pufferstatus beim Streaming von Audio/Video zu verfolgen.

Das Aufrufen von start () hat keine Auswirkungen auf ein MediaPlayer-Objekt, das sich bereits im Status "Gestartet" befindet.

Vielleicht ist es ein Teil der Antwort.

0
ykatchou