Reproducción de vídeo mediante la clase MediaPlayer

Estoy tratando de hacer uso de la clase MediaPlayer para reproducir un archivo de vídeo. El problema es que el video no se muestra en absoluto, aunque puedo escuchar el sonido en la reproducción de vídeo.

A continuación se muestra el código de actividad

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

A continuación se muestra el código de layout 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> 

Por favor dime que hay que hacer Gracias por adelantado.

Establecer la altura y el ancho de la vista de superficie para rellenar el padre en el archivo 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" /> 

Configurar el diseño de SurfaceView en wrap_content no dimensionará un video para reproducirlo con la relación de aspecto adecuada.

Puede consultar este enlace de respuesta

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

Y también este blog Play media on surfaceview usando android.media.MediaPlayer

Bueno, no sé si necesita una situación específica, pero ¿ya ha intentado FullscreenVideoView ?

Intenta resumir todos los problemas de SurfaceView y puede centrarse sólo en los botones de interfaz de usuario. Como está abierto, puede subclase FullscreenVideoView y personalizar según sus necesidades.

  • Se ha producido un error al cargar vídeo en html5 phonegap
  • Cómo seleccionar el video de la galería en el teléfono?
  • ExoPlayer - reproduce 10 archivos uno tras otro
  • Android: cambia entre la cámara frontal y posterior mientras graba un vídeo
  • ¿Cómo hacer una llamada de video mediante programación en Android 2.2 o superior?
  • ¿Cómo puedo asegurar la correcta orientación de reproducción del video grabado?
  • PhoneGap Android - Reproducción de vídeos locales
  • MediaPlayer no puede procesar en TextureView después de renderizar imágenes
  • Buffer de vídeo circular Android con sonido
  • Peer-to-Peer de vídeo de iOS a Android?
  • Cómo fusionar archivos de audio y video en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.