Потоковое видео с видеопросмотром

Мой код ниже для потокового видео:

VideoView vv = (VideoView)this.findViewById(R.id.screen_video);
Uri uri = Uri.parse(URL);
vv.setVideoURI(uri);
vv.start();

Оно работает. Но если формат URL-адреса видео не поддерживается телефоном или планшетом Android. Он показывает диалог, а не показывает экран. Но он все еще течет с черным экраном. Я хочу получить сообщение об ошибке и получить доступ в качестве исключения. Но я не знаю, как его получить?

Другая проблема заключается в том, что потоковая передача может завершиться сбоем из-за низкой скорости Wi-Fi. Как проверить это, чтобы ждать, пока низкая скорость Wi-Fi?


person brian    schedule 19.03.2012    source источник


Ответы (4)


попробуйте этот код, он работает,

public class PlayVideo extends Activity
{


 private String videoPath ="url";

 private static ProgressDialog progressDialog;
 String videourl;  
    VideoView videoView ;


 protected void onCreate(Bundle savedInstanceState)
 {

  super.onCreate(savedInstanceState);
  setContentView(R.layout.play_video);

   videoView = (VideoView) findViewById(R.id.videoView);


   progressDialog = ProgressDialog.show(PlayVideo.this, "", "Buffering video...", true);
   progressDialog.setCancelable(true);  


      PlayVideo();

 }
 private void PlayVideo()
 {
  try
       {      
              getWindow().setFormat(PixelFormat.TRANSLUCENT);
              MediaController mediaController = new MediaController(PlayVideo.this);
              mediaController.setAnchorView(videoView);           

               Uri video = Uri.parse(videoPath );             
               videoView.setMediaController(mediaController);
               videoView.setVideoURI(video);
               videoView.requestFocus();              
               videoView.setOnPreparedListener(new OnPreparedListener()
               {

                   public void onPrepared(MediaPlayer mp)
                   {                  
                       progressDialog.dismiss();     
                       videoView.start();
                   }
               });           


            }
       catch(Exception e)
       {
                progressDialog.dismiss();
                System.out.println("Video Play Error :"+e.toString());
                finish();
       }   

 }
}
person Hasmukh    schedule 19.03.2012
comment
Верно! Другим решением является регистрация прослушивателя setOnErrorListener (в объекте VideoView), что позволяет реализовать обратный вызов MediaPlayer.OnErrorListener, который будет вызываться при возникновении ошибки во время воспроизведения или настройки. - person GVillani82; 06.10.2014

Это зависит от того, на какой версии Android вы разрабатываете свое приложение. Есть определенные устройства, которые не поддерживают запуск файла .mp4. Обратитесь к поддержке Android Media для получения дополнительной информации. Проверьте, можете ли вы воспроизводить какие-либо файлы .3gp или нет.

person Rashmi.B    schedule 19.03.2012

Вы не должны воспроизводить видео мгновенно. Добавьте прослушиватель OnPrepared в представление видео и запустите воспроизведение видео после него. С помощью MediaPlayer вы можете отслеживать состояние буферизации и останавливать видео на некоторое время, когда оно еще не загружено. Ознакомьтесь с этим руководством. .

person Ruuhkis    schedule 19.03.2012
comment
Пока я использую видеопросмотр, он показывает 03-19 15:02:48.314: V/VideoView(9255): OnBufferingUpdateListener: CurrentBufferPercentage = 100 в logcat. Как я могу получить значение? - person brian; 19.03.2012
comment
Вот почему я предложил вам использовать MediaPlayer, вы можете зарегистрировать в нем OnBufferingUpdateListener. Но я думаю, что вы можете получить такое же значение при просмотре видео, используя videoView.getBufferPercentage() - person Ruuhkis; 19.03.2012

Попробуйте Intent, чтобы избежать этой ошибки. или поместите try catch в свой блок. VideoView может транслировать только видео 3gp, но я рекомендую этот код для потоковой передачи вашего видео.

public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
String videourl = "http://something.com/blah.mp4";
Uri uri = Uri.parse(videourl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);
}

Или Нажмите здесь, чтобы посмотреть руководство по потоковой передаче видео для Android.

person Jaymelson Galang    schedule 05.06.2013