2012-12-29 5 views
8

Ich führe einen Stream über MediaPlayer. Wenn die Pufferung beginnt, wird der Code 701 ausgelöst. Wenn das Puffern endet, wird der Code 702 geworfen.Was ist MediaPlayer.OnInfoListener "Code 703"?

Alle Codes sind auf dieser link gefunden.

Allerdings wirft MediaPlayer.OnInfoListener zuerst den Code 703, den ich nirgendwo finden kann. Hier ist die Code- und Debug-Ausgabe.

mPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() { 
    @Override 
    public boolean onInfo(MediaPlayer mediaPlayer, int i, int i2) { 
     Log.d(TAG, "MediaPlayer.OnInfoListener: " + i); 
     return false; 
    } 
}); 

Logcat:

12-29 13:40:54.995: DEBUG/StreamingService(13811): MediaPlayer.OnInfoListener: 703 
12-29 13:40:55.000: DEBUG/StreamingService(13811): MediaPlayer.OnInfoListener: 701 
12-29 13:41:09.055: DEBUG/StreamingService(13811): MediaPlayer.OnInfoListener: 702 
12-29 13:41:10.770: DEBUG/StreamingService(13811): MediaPlayer.OnCompletionListener 

Was ist der Code 703 über MediaPlayer.OnInfoListener geworfen?

Antwort

13

Code 703 sollte MEDIA_INFO_NETWORK_BANDWIDTH sein: "Bandbreite in der jüngsten Vergangenheit" (source).

Dies ist nicht wirklich ein Fehler. Es ist ein Statuscode für Informationen über das, was im Medienrahmen passiert. Mit Blick auf den Quellcode AwesomePlayer sehe ich, dass es MEDIA_INFO_NETWORK_BANDWIDTH sendet, wenn der Stream-Daten-Cache niedrig ist, was schließlich passieren würde, wenn Sie die Internetverbindung plötzlich deaktivieren. Es wird dann die Wiedergabe anhalten und versuchen, weitere Daten zu puffern, was durch eine Nachricht MEDIA_INFO_BUFFERING_START (Code 701) angezeigt wird.

+0

Danke. Ich frage mich, wo und wie du das gefunden hast :). Die große Frage lautet nun: Was bedeutet "Bandbreite in der jüngsten Vergangenheit"? Hast du eine Ahnung? – sandalone

+1

"wo": siehe den Link in meiner Antwort. "Wie": Ich arbeite mit Android Multimedia, um einen Lebensunterhalt zu verdienen, also habe ich eine recht gute Vorstellung davon, wo ich hinschauen sollte. Was diesen Info-Code angeht, würde ich annehmen, dass das zweite Argument die Menge an Bandbreite enthält, die für Streaming-Medien in der "jüngsten Vergangenheit" verwendet wurde (was auch immer das sein mag). – Michael

+0

Nochmals vielen Dank. Könnte der Code 703 bedeuten, dass der Puffer nicht zu 100% leer ist? Ich frage, wie das passiert: Ich schalte das Internet aus, während der Strom spielt, der Ton hört auf, den Puffer zu füllen, ** dann beginnt er für weniger als 1s ** zu spielen (du hast überhaupt keine Internetverbindung), und dann erhalte ich den Fehler 702 und 'onCompletion' wird aufgerufen. – sandalone