2017-02-17 3 views
0

У меня есть следующий код, чтобы закрыть текущую активность.Androids MediaPlayer onErrorListener MEDIA_ERROR_SERVER_DIED сделать проблемы

if(what == MediaPlayer.MEDIA_ERROR_SERVER_DIED){ 
    DialogFragment videoNotAvailable = new VideoNotAvailableDialogFragment(); 
    videoNotAvailable.show(getFragmentManager(), "NoVideo"); 
} 

Но результатом этого кода является черный экран без чего-либо еще. Диалоговое окно не отображается. Может ли кто-нибудь помочь? Может быть, я не понял смысл этого заявления (MEDIA_ERROR_SERVER_DIED) ...?

дополнительный добавил: VideoNotAvailableDialog включить это и работает в другой части:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setMessage(getString(R.string.videoNotAvailablePart1)) 
      .setPositiveButton(R.string.videoNotAvailableAccept_button, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        // User accepts the message 
        ((LiveStreamActivity) getActivity()).finish(); 
       } 
      }); 

ответ

1

Я была такая же проблема. Через несколько минут видео, воспроизводимое из внутренней/внешней памяти, перестанет воспроизводиться, и у меня появится черный экран, но я добавил диалог прогресса «Ошибка поиска видео!». когда я получаю исключение, пытаясь воспроизвести видео. Добавьте этот кусок кода, который будет вызываться всякий раз возникает ошибка:

myVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { 

      @Override 
      public boolean onError(MediaPlayer mp, int what, int extra) { 
       // TODO Auto-generated method stub 
       Log.d("MainActivity","WHAT: "+ what + " EXTRA: "+extra); 
       progressDialog.setMessage("Error: "+what); 
       return false; 
      } 
     }); 

вы должны reset() медиаплеер, и экземпляр нового в зависимости от того, что номер ошибки вы получаете. См. Документацию по Android на их website.

Смежные вопросы