Потоковое видео с videoview - PullRequest
4 голосов
/ 19 марта 2012

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

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?

Ответы [ 4 ]

11 голосов
/ 19 марта 2012

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

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

 }
}
2 голосов
/ 19 марта 2012

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

1 голос
/ 05 июня 2013

Попробуйте Intent, чтобы избежать этой ошибки.или поставить попробовать поймать в вашем блоке.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 .

1 голос
/ 19 марта 2012

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

...