2011-09-21 15 views
9

Sono perplesso.La riproduzione video dà schermo nero ma con suono

Sto provando a riprodurre video con il lettore multimediale ma mentre l'audio viene riprodotto, tutto ciò che ottengo è una finestra nera.

Ho visto altri post su questo problema ma non sono riuscito a trovare una soluzione. Ho cercato di seguire i loro suggerimenti.

Il mediaplayer viene preparato prima della riproduzione. Il supporto per la superficie è stato creato e impostato sul display del lettore multimediale prima della riproduzione.

Testato su un Samsung Galaxy Tab e un Samsung Galaxy S.

Sto compilando contro livello di API 7.

Il video stesso può essere giocato in applicazione video del dispositivo dal sdcard, quindi dovrebbe essere compatibile

La vista di superficie non ha le stesse dimensioni del video. Quindi potrebbe essere un problema. Devo fare qualcosa al riguardo o lo stretching viene gestito automaticamente?

Ecco quello che ho nel mio inizializzazione:

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();      

e qui sono i miei callback:

public void onPrepared(MediaPlayer mp) 
{ 
    mMediaPlayer.start(); 
} 


public void surfaceCreated (SurfaceHolder holder) 
{ 
    mMediaPlayer.setDisplay(holder); 
} 

cosa frustrante è che una versione del codice funzionava correttamente qualche tempo fa, ma ora non è.

+0

Qual è il codec video? – rds

+0

Qualche fortuna con questa popolare domanda? – Behnam

risposta

0

Avevo un problema simile ed era correlato al formato video (codec MP4, WMV, AVI, ecc.).

Provare a eseguire il video sul lettore predefinito di Android, vedere se funziona. Se non funziona, potrebbe essere un problema nel codec video.

Non provare a eseguire il video su lettori come VLC o Player MX, hanno codec incorporato.

Problemi correlati