2010-07-31 106 views
1

我已经在android中编写了视频播放器代码。但是我面临的一个问题是当我调试我的代码视频播放正常但是当我运行这个时,视频不出现只有声音可以听。Android视频播放器问题

任何帮助,将不胜感激。

这是我的视频播放器的主要方法。

private void playVideo(String url) 
{ 
    try 
    { 
    media.setEnabled(false); 
    if (player==null) 
    { 
    player=new MediaPlayer(); 
    player.setScreenOnWhilePlaying(true); 
    //player.reset(); 
    } 
    else 
    { 
    player.stop(); 
    player.reset(); 
    } 
    player.setOnErrorListener(this); 
    player.setDataSource(url); 
    player.setDisplay(holder); 
    player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    player.setOnPreparedListener(this); 
    player.prepareAsync(); 
    player.setOnBufferingUpdateListener(this); 
    player.setOnCompletionListener(this); 
    } 
    catch(IllegalStateException ex) 
    { 
    try 
    { 
    player.reset(); 
    player.setOnErrorListener(this); 
    player.setDataSource(url); 
    player.setDisplay(holder); 
    player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    player.setOnPreparedListener(this); 
    player.prepareAsync(); 
    player.setOnBufferingUpdateListener(this); 
    player.setOnCompletionListener(this); 
    } 
    catch(Exception ex1) 
    { 
    ex1.printStackTrace(); 
    } 
    } 
    catch (Throwable t) 
    { 
    Log.e(TAG, "Exception in media prep", t); 
    goBlooey(t); 
    } 
} 

回答

1

如果音频播放,但没有视频,你可能没有设置您的表面持有者正确,从MediaPlayer的文件看到:

公共无效setDisplay(SurfaceHolder SH)

设置SurfaceHolder用于显示 媒体的视频部分的 。这个电话是可选的。不是 在播放视频 时调用它将导致只播放音轨 。

参数SH - 的SurfaceHolder到 使用用于视频显示

也许你需要做这样的事情在你的onCreate()以下:

mPreview = (SurfaceView) findViewById(R.id.surface); 
holder = mPreview.getHolder();