La reproducción de vídeo proporciona pantalla en negro pero con sonido

Estoy perplejo.

Estoy tratando de reproducir video con el reproductor de medios, pero mientras el audio se reproduce, todo lo que obtengo es una ventana negra.

He visto otros mensajes sobre este problema, pero no he estado para encontrar una solución. He tratado de seguir sus sugerencias.

El reproductor multimedia se prepara antes de la reproducción. El soporte de superficie se creó y se ajustó a la pantalla del reproductor de medios antes de la reproducción.

Probado en un Samsung Galaxy Tab y un Samsung Galaxy S.

Estoy compilando contra API nivel 7.

El vídeo en sí se puede reproducir en la aplicación de vídeo del dispositivo desde la tarjeta sd, por lo que debe ser compatible.

La vista de la superficie no es del mismo tamaño que el video. Así que eso podría ser un problema. ¿Tengo que hacer algo al respecto o se está estirando manejado automáticamente?

Esto es lo que tengo en mi inicialización:

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(width, height); lp.leftMargin = x; lp.topMargin = y; mSurfaceView = new SurfaceView(mActivity); mSurfaceView.requestFocus(); mSurfaceView.setZOrderOnTop(true); mSurfaceView.getHolder().addCallback(player); mSurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); mLayout.addView(mSurfaceView, lp); mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(assetDescriptor.getFileDescriptor(), assetDescriptor.getStartOffset(), assetDescriptor.getLength()); mMediaPlayer.setOnErrorListener(player); mMediaPlayer.setOnPreparedListener(player); mMediaPlayer.prepare(); 

Y aquí están mis callbacks:

 public void onPrepared(MediaPlayer mp) { mMediaPlayer.start(); } public void surfaceCreated (SurfaceHolder holder) { mMediaPlayer.setDisplay(holder); } 

Lo que es frustrante es que una versión del código funcionaba correctamente hace un tiempo, pero ahora no lo es.

Tuve un problema similar, y estaba relacionado con el formato de vídeo (codec MP4, WMV, AVI, etc).

Intente ejecutar el video en el reproductor predeterminado de Android, ver si funciona. Si no funciona, entonces puede ser un problema en el códec de vídeo.

No intentes ejecutar el video en reproductores como VLC o Player MX, tienen códec incorporado.

  • Elemento HTML5 <video> en Android
  • Inconsistencias con el video HTML5 en un WebView de Android
  • Reproducción de un video después de que un video en TextureView de Android tenga problemas
  • Android: Reproducción y grabación simultánea de vídeo
  • ¿Es posible grabar vídeo de la cámara a través de un búfer en un archivo?
  • Cómo jugar video HTML5 en línea con Phonegap para Android 4.1.1
  • Android: cambia entre la cámara frontal y posterior mientras graba un vídeo
  • Reproducir video local en la vista web
  • Android MediaRecorder produce video corrupto con líneas verdes
  • ¿Reproduce vídeos de vimeo usando el reproductor nativo de android?
  • Multiplexación de flujos de audio y vídeo en línea en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.