天天看點

java Unknown error_Java MediaPlayer.MEDIA_ERROR_UNKNOWN屬性代碼示例

public boolean onError(MediaPlayer mp_UBRUGT, int hvad, int extra) {

//Log.d("onError(" + MedieafspillerInfo.fejlkodeTilStreng(hvad) + "(" + hvad + ") " + extra+ " onErrorTæller="+onErrorTæller);

Log.d("onError(" + hvad + ") " + extra + " onErrorTæller=" + onErrorTæller);

if (vækningIGang) {

ringDenAlarm();

return true;

}

if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN && hvad == MediaPlayer.MEDIA_ERROR_UNKNOWN

&& "GT-I9300".equals(Build.MODEL) && mediaPlayer.isPlaying()) {

// Ignorer, da Samsung Galaxy SIII på Android 4.1 Jelly Bean

// sender denne fejl (onError(1) -110) men i øvrigt spiller fint videre!

return true;

}

// Iflg http://developer.android.com/guide/topics/media/index.html :

// "It's important to remember that when an error occurs, the MediaPlayer moves to the Error

// state and you must reset it before you can use it again."

if (afspillerstatus == Status.SPILLER || afspillerstatus == Status.FORBINDER) {

// Hvis der har været

// 1) færre end 10 fejl eller

// 2) der højest er 1 fejl pr 20 sekunder så prøv igen

long dt = System.currentTimeMillis() - onErrorTællerNultid;

if (onErrorTæller++ < (App.fejlsøgning ? 2 : 10) || (dt / onErrorTæller > 20000)) {

pauseAfspilningIntern();

//mediaPlayer.stop();

//mediaPlayer.reset();

if (App.erOnline()) {

// Vi venter længere og længere tid her

int n = onErrorTæller;

if (n > 11) n = 11;

int ventetid = 10 + 5 * (1 << n); // fra n=0:10 msek til n=10:5 sek til max n=11:10 sek

Log.d("Ventetid før vi prøver igen: " + ventetid + " n=" + n + " " + onErrorTæller);

handler.postDelayed(startAfspilningIntern, ventetid);

} else {

Log.d("Vent på at vi kommer online igen");

onErrorTællerNultid = System.currentTimeMillis();

App.netværk.observatører.add(venterPåAtKommeOnline);

if (afspillerlyde) afspillerlyd.fejl.start();

}

} else {

pauseAfspilning(); // Vi giver op efter 10. forsøg

App.langToast(R.string.Beklager_kan_ikke_spille_radio);

App.langToast(R.string.Tjek_din_internetforbindelse_og___);

if (afspillerlyde) afspillerlyd.fejl.start();

}

} else {

mediaPlayer.reset();

}

return true;

}