android - 如何在Android中播放RTSP视频?

标签 android video android-videoview rtsp youtube-channels

我想在 VideoView 上播放 Youtube 视频。 我搜索了很多,发现 VideoView 支持 rtsp URL Video 。 但我收到错误:我的 Android 设备是 2.3.5 & 使用 Wifi。 我的VideoView代码是:

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

我的 LogCat 错误是:

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

最佳答案

首先,您必须从您的 YouTube channel 获取视频。对于这个以下示例将为您提供帮助。

See My answer Here.它会给你关于这个的完美想法。

此外,为了在 videoview 中播放视频,您需要视频的 rtsp 格式。

您可以将您的网址转换为 rtsp 格式,我为此创建了函数 HERE.

关于android - 如何在Android中播放RTSP视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12853769/

相关文章:

android - Jetpack Compose 滚动条

android - YouTubeAndroidPlayerAPI 无法播放某些视频

android - Android 上的圆角 Twilio VideoView

android - 显示 fragment 的 Activity 按钮

java - 用从另一个对象 java.lang.NullPointerException 调用的字符串替换我的 textview

video - 使用 ffprobe 从视频中获取帧号和时间戳

安卓视屏

安卓VideoView : video goes black after being removed from parent view

java - 'createVideoSource(boolean )' in ' org.webrtc.PeerConnectionFactory' 不能应用于 '(org.webrtc.CameraVideoCapturer)'

c# - 如何从 .mov 视频文件头(QuickTime 文件格式)中读取比特率信息?