2011-09-21 20 views
9

Estoy perplejo.Reproducción de video da pantalla en negro pero con sonido

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

He visto otras publicaciones sobre este problema pero no he encontrado una solución. Intenté seguir sus sugerencias.

El reproductor de medios está preparado antes de la reproducción. El soporte de superficie fue creado y configurado en la pantalla del reproductor de medios antes de la reproducción.

Probado en un Samsung Galaxy Tab y Galaxy S. Samsung

Estoy compilando contra el nivel de la API 7.

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

La vista de superficie no tiene el mismo tamaño que el video. Entonces eso podría ser un problema. ¿Tengo que hacer algo al respecto o me estoy estirando automáticamente?

Esto es lo que tengo en la 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 devoluciones de llamada:

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 estaba trabajando hace adecuadamente un tiempo, pero ahora no es.

+0

¿Qué es el códec de video? – rds

+0

¿Alguna suerte con esta popular pregunta? – Behnam

Respuesta

0

Tuve un problema similar y estaba relacionado con el formato de video (códec MP4, WMV, AVI, etc.).

Intenta ejecutar el video en el reproductor predeterminado de Android, mira si eso funciona. Si no funciona, puede ser un problema en el códec de video.

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

Cuestiones relacionadas