Android视频播放器问题

时间:2010-07-31 10:22:29

标签: android video

我在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 个答案:

答案 0 :(得分:1)

如果音频播放但不播放视频,则可能没有正确设置曲面支架,如MediaPlayer文档中所示:

  

public void setDisplay(SurfaceHolder   SH)

     

设置要用于的SurfaceHolder   显示的视频部分   媒体。此调用是可选的。不   在播放视频时调用它   只会产生音轨   正在上演。

     

参数sh - SurfaceHolder到   用于视频显示

也许您需要在onCreate()中执行以下操作:

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