videos ver tutorial studio reproducir example android video videoview rtsp youtube-channels

ver - Cómo jugar video RTSP en Android?



reproducir videos de youtube en android studio (2)

Quiero jugar video de Youtube en VideoView. He buscado mucho y encuentro VideoView Support rtsp URL Video. Pero recibo un error: mi dispositivo Android es 2.3.5 y uso de Wifi. Mi código de VideoView es:

final VideoView videoView = (VideoView) findViewById(R.id.VideoView); Button youtube=(Button)findViewById(R.id.button1); final MediaController mediaController = new MediaController(this); mediaController.setScrollBarStyle(DEFAULT_KEYS_DISABLE); mediaController.setPressed(true); mediaController.setAnchorView(videoView); Uri video = Uri.parse("rtsp://v3.cache7.c.youtube.com/CiILENy73wIaGQlOCTh0GvUeYRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"); // Uri video = Uri.parse(getUrlVideoRTSP("http://gdata.youtube.com/feeds/api/users/mashable/uploads?&v=2")); videoView.setMediaController(mediaController); videoView.setVideoURI(video); videoView.requestFocus(); videoView.start();

Mi error LogCat es:

10-12 11:56:50.369: D/WindowManagerImpl(6880): addView, new view, mViews[0]: com.android.internal.policy.impl.PhoneWindow$DecorView@4055c4e0 10-12 11:56:50.430: I/AudioSystem(6880): getting audio flinger 10-12 11:56:50.430: I/AudioSystem(6880): returning new audio session id 10-12 11:56:50.430: D/MediaPlayer(6880): setDataSource(Context context, rtsp://v3.cache7.c.youtube.com/CiILENy73wIaGQlOCTh0GvUeYRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp, Map<String, String> headers) in 10-12 11:56:50.460: I/MediaPlayer(6880): skip setting (httpproxyip,null) 10-12 11:56:50.460: I/MediaPlayer(6880): skip setting (httpproxyport,null) 10-12 11:56:50.460: I/MediaPlayer(6880): skip setting (rtspproxyip,null) 10-12 11:56:50.460: I/MediaPlayer(6880): skip setting (rtspproxyport,null) 10-12 11:56:50.460: I/MediaPlayer(6880): add setting (minudpport,1024) 10-12 11:56:50.460: I/MediaPlayer(6880): add setting (maxudpport,65535) 10-12 11:56:50.460: I/MediaPlayer(6880): add setting (buffertime,7) 10-12 11:56:50.460: I/MediaPlayer(6880): add setting (rtsptimeout,25000) 10-12 11:56:50.460: I/MediaPlayer(6880): add setting (rtptimeout,25000) 10-12 11:56:50.460: I/MediaPlayer(6880): add setting (rtcpreportinterval,3000) 10-12 11:56:50.460: I/MediaPlayer(6880): add setting (rtspkeepaliveinterval,35000) 10-12 11:56:50.460: D/MediaPlayer(6880): Couldn''t open file on client side, trying server side 10-12 11:56:50.470: I/MediaPlayer(6880): disable CIQ 10-12 11:56:50.470: D/MediaPlayer(6880): setDataSource(Context context, rtsp://v3.cache7.c.youtube.com/CiILENy73wIaGQlOCTh0GvUeYRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp, Map<String, String> headers) out 10-12 11:57:20.589: W/MediaPlayer(6880): info/warning (34355, 3000) 10-12 11:57:20.589: I/MediaPlayer(6880): Info (34355,3000) 10-12 11:57:20.599: E/MediaPlayer(6880): error (1, -1003) 10-12 11:57:20.599: E/MediaPlayer(6880): Error (1,-1003) 10-12 11:57:20.599: D/VideoView(6880): Error: 1,-1003


Al usar esta forma, toco el video rtsp en Android.

videourl="rtsp://.........."; videoView = (VideoView) findViewById(R.id.video_View); progressDialog = ProgressDialog.show(Video.this, "", "Buffering video...", true); progressDialog.setCancelable(false); // progressDialog.dismiss(); MediaController mediaController = new MediaController(Video.this); mediaController.setAnchorView(videoView); Uri video = Uri.parse(videourl);// insert video url videoView.setMediaController(mediaController); videoView.setVideoURI(video); videoView.requestFocus(); sync = new myAsync(); sync.execute(); // PlayVideo(); } private class myAsync extends AsyncTask<Void, Integer, Void> { int duration = 0; //int current = 0; @Override protected Void doInBackground(Void... params) { videoView.setOnPreparedListener(new OnPreparedListener() { public void onPrepared(MediaPlayer mp) { progressDialog.dismiss(); videoView.seekTo(check); videoView.start(); duration = videoView.getDuration(); } }); do { current = videoView.getCurrentPosition(); System.out.println("duration - " + duration + " current- " + current); /*if(current/600==0) { //sync.cancel(true); videoView.pause(); try { wait(300000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace();q } videoView.resume(); videoView.seekTo(current); }*/ } if (sync.isCancelled()) break; } while (current != duration || current == 0); return null; } }


Primero debes obtener videos de tu canal YOutube. Para este siguiente ejemplo, te ayudará.

Ver mi respuesta aquí. te dará una idea perfecta sobre esto.

También para reproducir video en videoview necesita el formato rtsp de su video.

Puede convertir su url en formato rtsp y crear una función para lo que está AQUÍ.