2014-01-22 3 views
7

Я разрабатываю плеер youtube в Android. Я получаю правильный URL-адрес rtsp. Но все же видео не воспроизводится. Пожалуйста, помогите мне найти решение.Воспроизвести видео Youtube в режиме просмотра видео в android

Заранее спасибо

Вот мой код

String youtubeURL="rtsp://v6.cache4.c.youtube.com/CigLENy73wIaHwmh5W2TKCuN2RMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp"; 
    @Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_online_video_player); 

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

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


     PlayVideo(); 
} 

private void PlayVideo() 
{ 
     try { 
      final VideoView videoView =(VideoView)findViewById(R.id.video_View); 
    //1 //mediaController = new MediaController(Splashscreen.this); 
    //2 //mediaController.setAnchorView(videoView); 
      // Set video link (mp4 format) 
      Uri video = Uri.parse(youtubeURL); 
      //videoView.setMediaController(mediaController); 
      videoView.setVideoURI(video); 
      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.getMessage()); 
     } 
+0

Я не думаю, что ваш URL правильно. – GrIsHu

+0

Этот код работает, может быть, проблема в вашем xml-файле, не могли бы вы разместить его – youssefhassan

ответ

5

Вот еще один рабочий код

MainActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_video_view); 

    VideoView videoView =(VideoView)findViewById(R.id.videoView); 
    MediaController mediaController= new MediaController(this); 
    mediaController.setAnchorView(videoView); 
    Uri uri=Uri.parse("rtsp://r2---sn-a5m7zu76.c.youtube.com/Ck0LENy73wIaRAnTmlo5oUgpQhMYESARFEgGUg5yZWNvbW1lbmRhdGlvbnIhAWL2kyn64K6aQtkZVJdTxRoO88HsQjpE1a8d1GxQnGDmDA==/0/0/0/video.3gp"); 
    videoView.setMediaController(mediaController); 
    videoView.setVideoURI(uri); 
    videoView.requestFocus(); 

    videoView.start(); 


} 

activity_video_view.xml

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<VideoView android:id="@+id/videoView" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"/> 
</LinearLayout> 
+4

Код Awseome. Скажите, пожалуйста, как создать rstp-ссылку на любой YouTube-видео? –

3

Вы не можете сделать это. Используйте YouTubeAndroidApi для воспроизведения видео на YouTube.

+1

, но что делать, если вам нужно играть как с обычным видео (из таких источников, как http://example.com/sample.mp4), так и с видео youtube , Кажется глупым иметь два вида, чтобы иметь возможность воспроизводить оба типа видео. –

+0

Пользователям необходимо запустить версию 4.2.16 мобильного приложения YouTube (или выше) для использования API Android Player для Android. – Bishan

2

Там может быть много причин, чтобы не воспроизводить видео, Вы можете проверить его на других устройствах также установить андроида: hardwareAccelerated = «истина» в очевидном

попробовать следующие слушателей, чтобы получить правильный Issue

playerview.setOnPreparedListener(preparelistener); 
     playerview.setOnErrorListener(errorlistenr); 
     playerview.setOnCompletionListener(completelistener); 
Смежные вопросы