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.

  • Reproducción de vídeo en android directamente desde el servidor
  • Limitaciones de la captura de video en la brecha del teléfono + complementos nativos
  • Los videos de incrustación de YouTube no funcionan en la vista web. ¿Qué tiene de malo este código?
  • Cómo proporcionar datos de audio y datos de vídeo a MediaMux
  • Reproduce audio y video al mismo tiempo en Android
  • Rotar vídeo con Mp4parser
  • Android MediaStore insertVideo
  • Decodificación h264 ByteStream en Android
  • Android no puede usar hdmi en la pestaña creativa y necesita ser notificado en todos los dispositivos (máximo) tan pronto como hdmi esté conectado
  • Android: cambia entre la cámara frontal y posterior mientras graba un vídeo
  • No se pueden transmitir vídeos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.