2012-12-29 9 views
8

Mam strumień przez MediaPlayer. Kiedy rozpoczyna się buforowanie, generowany jest kod 701. Kiedy buforowanie się kończy, kod 702 jest wyrzucany.Co to jest MediaPlayer.OnInfoListener "kod 703"?

Wszystkie kody znajdują się na tym link.

Jednak, MediaPlayer.OnInfoListener najpierw rzuca kod 703, którego nigdzie nie mogę znaleźć. Oto dane wyjściowe kodu i debugowania.

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 

Co to jest kod 703rzucony przez MediaPlayer.OnInfoListener?

Odpowiedz

13

Code 703 powinien być MEDIA_INFO_NETWORK_BANDWIDTH: "Bandwidth w niedawnej przeszłości" (source).

To naprawdę nie jest błąd. Jest to kod statusu dla informacji o tym, co dzieje się w środowisku medialnym. Patrząc na kod źródłowy AwesomePlayer widzę, że wysyła on MEDIA_INFO_NETWORK_BANDWIDTH, jeśli pamięć podręczna danych strumieniowych jest na wyczerpaniu, co w końcu nastąpi, jeśli nagle wyłączysz połączenie internetowe. Następnie wstrzyma odtwarzanie i zacznie próbować buforować więcej danych, co jest sygnalizowane komunikatem MEDIA_INFO_BUFFERING_START (kod 701).

+0

Dzięki. Zastanawiam się, gdzie i jak to znalazłeś :). Ale najważniejsze pytania brzmią teraz: Co oznacza "Przepustowość w niedawnej przeszłości"? Czy masz wskazówkę? – sandalone

+1

"gdzie": patrz link w mojej odpowiedzi. "jak": Pracuję z multimediami dla Androida, więc mam dość dobre pojęcie, gdzie powinienem wyglądać. Co do tego, co oznacza ten kod informacyjny, przypuszczam, że drugi argument zawiera ilość przepustowości, która została wykorzystana do strumieniowego przesyłania multimediów w "niedawnej przeszłości" (cokolwiek to może być). – Michael

+0

Jeszcze raz dziękuję. Czy kod 703 może oznaczać, że bufor nie jest w 100% pusty? Pytam, jak to się dzieje: wyłączam Internet, gdy odtwarzam strumień, dźwięk przestaje próbować wypełniać bufor, ** następnie zaczyna grać za mniej niż 1 s ** (nie ma w ogóle połączenia z Internetem), i następnie pojawia się błąd 702 i wywoływana jest funkcja "onCompletion". – sandalone