Lecture de vidéo en utilisant la classe MediaPlayer

J'essaie d'utiliser la classe MediaPlayer pour jouer un fichier vidéo. Le problème est que la vidéo ne s'affiche pas du tout, même si je peux entendre le son de la lecture vidéo.

Voici le code d'activité

  • Pourquoi ImageView.setImageMatrix () ne fonctionne-t-il pas?
  • Comment mettre en œuvre l'élévation de la conception du matériau pour pré-sucette
  • Impossible de créer un projet pour iOS de cordova cli
  • Android: ne peut pas supprimer l'écart vertical entre les images dans LinearLayout
  • Android Crashlytics ndk; Valeurs de NdkOut et NdkLibsOut dans build.gradle
  • Android: comment exécuter asynctask à partir de différents fichiers de classe?
  •  public class MainActivity extends Activity implements OnClickListener { private SurfaceView surfaceView; private Button btnPlay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); addListener(); } private void init() { // TODO Auto-generated method stub surfaceView = (SurfaceView) findViewById(R.id.surfaceView1); btnPlay = (Button) findViewById(R.id.btnPlay); } private void addListener() { // TODO Auto-generated method stub btnPlay.setOnClickListener(this); } MediaPlayer mediaPlayer = null; @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btnPlay: try{ if (mediaPlayer != null) { mediaPlayer.reset(); mediaPlayer.release(); }else{ getWindow().setFormat(PixelFormat.UNKNOWN); MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.wildlife); SurfaceHolder surfaceHolder = surfaceView.getHolder(); surfaceHolder.setFixedSize(176, 144); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); mediaPlayer.setDisplay(surfaceHolder); mediaPlayer.start();} }catch (Exception e) { Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); } break; default: break; } } } 

    Voici le code de mise en page xml

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <SurfaceView android:id="@+id/surfaceView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" /> <Button android:id="@+id/btnPlay" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/surfaceView1" android:layout_alignTop="@+id/surfaceView1" android:text="@string/play" /> </RelativeLayout> 

    Dites-moi ce qu'il faut faire? Merci d'avance.

  • Google Analytics Android SDK V4 confusion
  • Test de vues personnalisées avec Robolectric
  • Erreur Runtime.exec (): se bloque sans fournir un objet Process
  • SetTextAppearance obsolète au niveau API 23
  • Comment puis-je accéder à la caméra sur les téléphones Android?
  • Faire un thread qui annule un appel InputStream.read () si le temps "x" est passé
  • 3 Solutions collect form web for “Lecture de vidéo en utilisant la classe MediaPlayer”

    Mise en surface Voir hauteur et largeur pour compléter le parent dans le fichier xml.

      <SurfaceView android:id="@+id/surfaceView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" /> 

    Le réglage de votre mise en page SurfaceView dans wrap_content ne permet pas de dimensionner une vidéo pour jouer au bon rapport d'image.

    Vous pouvez vous référer à ce lien de réponse

    https://stackoverflow.com/a/6283676/1441666

    Et aussi ce blog Jouez aux médias sur la vision de surface en utilisant android.media.MediaPlayer

    Eh bien, je ne sais pas si vous avez besoin d'une situation spécifique, mais avez-vous déjà essayé FullscreenVideoView ?

    Il tente de résumer tous les problèmes SurfaceView et vous ne pouvez vous concentrer que dans les boutons UI. Comme il est ouvert, vous pouvez sous-classe FullscreenVideoView et personnaliser comme vous avez besoin.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.