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.
- La captura de video de Phonegap se bloquea
- Reproducir audio de un video musical usando la API de Youtube en android, cuando mi aplicación está minimizada
- ¿Por qué mi videoview no está reproduciendo?
- Cómo fusionar archivos de audio y video en Android
- Picasso image loading library: cómo cargar miniaturas de video
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.
- Reproducción de vídeo desde el directorio caché de la aplicación
- ¿Qué es AwesomePlayer en android?
- Reproducir video en Android usando Xamarin
- Ocultar una vista de superficie que se superpone a otra
- Marcas de tiempo de presentación incorrectas al buscar hacia atrás a través de vídeo MP4
- Error de MediaPlayer de Android No se puede reproducir este video
- Reproducir vídeo Mp4 desde el servidor android
- ¿Por qué mediaPlayer.seekTo (msec) no actualiza surfaceView cuando mediaPlayer está pausado?
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.
- Jerarquía de estilo en Android – ¿cuál es el orden de importancia?
- Do onMeasure en Android devuelve Tamaño incluyendo relleno y margen?