Проблема с видеоплеером Android - PullRequest
1 голос
/ 31 июля 2010

Я написал код видеопроигрывателя на 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 Ответ

1 голос
/ 02 февраля 2011

Если воспроизводится звук, но не видео, возможно, вы неправильно настроили держатель поверхности, как видно из документации MediaPlayer:

публичный void setDisplay (SurfaceHolder ш)

Устанавливает SurfaceHolder для использования отображение видео части средства массовой информации. Этот звонок не является обязательным. Не вызывая его при воспроизведении видео приведет только к звуковой дорожке играется.

Параметры sh - SurfaceHolder для использовать для отображения видео

Возможно, вам нужно сделать что-то подобное в вашем onCreate ():

mPreview = (SurfaceView) findViewById(R.id.surface);
holder = mPreview.getHolder();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...