オーディオは開始されますが、2-3秒後にエラーが発生し、それは MediaPlayerエラー(1、-1004)で終了します。
まず、エラー(1、-1004)は何を意味するのかを理解しています。 -1004はIOエラーのエラーコードです。 MediaPlayer.javaソースコードの下にある参照。
/** File or network related operation errors. */
public static final int MEDIA_ERROR_IO = -1004;
このタイプのエラーは、何らかの理由でネットワークの問題によりサーバーに接続できない場合に発生します。そのインスタンスで悪いインターネット接続や、メディアプレーヤーがサーバーに接続できなかったネットワーク関連の理由がある可能性があります。タイムアウトまたはサーバが死んだようにメディアプレーヤーを投げることができますいくつかの他の同様のエラーコードがあります
/** Some operation takes too long to complete, usually more than 3-5 seconds. */
public static final int MEDIA_ERROR_TIMED_OUT = -110;
/** Media server died.*/
public static final int MEDIA_ERROR_SERVER_DIED = 100;
今私は何をすべき?
実行時にメディアプレーヤーによって生成されるエラーを処理するには、エラーリスナーを実装する必要があります。どのような方法でも、プレーヤーを再起動するなどのエラーを処理することができます。
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
switch(extra){
case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
// Do Something
// eg. reset the media player and restart
break;
case MediaPlayer.MEDIA_ERROR_IO:
// Do Something
// eg. Show dialog to user indicating bad connectivity
// or attempt to restart the player
break;
case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
//Do Something
//eg. Show dialog that there was error in connecting to the server
// or attempt some retries
break;
}
//You must always return true if you want the error listener to work
return true;
}
});