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é

  • Comment créer une TextView personnalisée?
  • HorizontalScrollView avec des éléments centrés
  • Différence entre onCreate () et onStart ()?
  • Existe-t-il un moyen d'activer les barres de défilement pour RecyclerView dans le code?
  • Je suis en train de suivre mon application Android sur Google Analytics. Pourquoi est-ce que je semble avoir des utilisateurs Macintosh?
  • Comment puis-je obtenir un événement dans Android Spinner lorsque l'élément sélectionné est à nouveau sélectionné?
  •  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.

  • Android - Enregistrement / extraction de chaînes avec des préférences partagées
  • SplashScreen with Vector streched full screen
  • La bibliothèque se décide à un chemin sans fichier project.properties
  • ClassNotFoundException dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:61)
  • Stabilisation vidéo en temps réel
  • Android, ajouter une bordure pour éditer le texte par programme
  • 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.