2017-02-17 3 views
0

J'ai le code suivant pour fermer l'activité en cours.Androids MediaPlayer onErrorListener MEDIA_ERROR_SERVER_DIED pose des problèmes

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

Mais le résultat de ce code est un écran noir sans rien d'autre. La boîte de dialogue n'est pas affichée. Quelqu'un peut-il aider? Peut-être que je n'ai pas compris la signification de cette déclaration (MEDIA_ERROR_SERVER_DIED) ...?

ajoutée supplémentaire: le VideoNotAvailableDialog comprennent cela et travaille dans une autre partie:

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(); 
       } 
      }); 

Répondre

1

J'ai eu le même problème. Après quelques minutes, une vidéo lue à partir de la mémoire interne/externe s'arrêtait de jouer et j'ai eu un écran noir mais j'ai ajouté une boîte de dialogue de progression, "Error Finding video!" chaque fois que j'ai une exception en essayant de lire la vidéo. Ajouter ce morceau de code à appeler chaque fois qu'une erreur se produit:

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; 
      } 
     }); 

vous devrez reset() le lecteur multimédia et instancier une nouvelle fonction de ce numéro d'erreur que vous obtenez. Voir la documentation Android sur leur website.