我正在编写一个使用流媒体播放YouTube视频的应用程序。
第一种方法:
我使用GData API获取视频的RTSP URL。 以下是播放RTSP网址的代码。
VideoView mVideoView = new VideoView(this);
setContentView(mVideoView);
mVideoView.setVideoURI(Uri.parse("rtsp://rtsp2.youtube.com/CiILENy73wIaGQkDwpjrUxOWQBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp"));
mVideoView.start();
但它会在G1设备和模拟器上抛出错误(模拟器有一些 根据邮件列表的防火墙问题) 这是错误消息
ERROR / PlayerDriver(35):命令PLAYER_INIT已完成,但出现错误或 info PVMFFailure
第二种方法:
从中获取3gp文件路径的黑客方法 http://www.youtube.com/get_video?v=& T公司= LT;>&安培;<> .. 获取文件路径后,我可以调用setVideoURI并播放它 精细。但这是达到要求的黑客方式。 我也检查过Youtube应用程序,它也有黑客玩法 youtube url。(使用logcat检查)
我尝试从VideoView更改为MediaPlayer,但错误没有变化。
有没有“干净”的方法来做到这一点?
请让我知道你的想法。
答案 0 :(得分:2)
如果您愿意在新活动中完成工作,以下内容将适用于设备但不适用于模拟器:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));
答案 1 :(得分:2)
有时Uri.parse会返回“null”,因为无法解析rtsp协议而不是http协议。
使用Log in logcat Uri.parse(rtspURL).toString()
查看它,您将看不到任何内容。或只生成Log.d("tag", Uri.parse);
并返回相同的内容。
尝试找到解析(创建)Uri的另一种方法。
我会尝试并运行:
String urlVideo = <your rtspURL>
VideoView video = (VideoView)findViewById(R.id.VideoView01);
Log.d(tag , urlVideo);
video.setVideoURI(Uri.parse(urlVideo));
MediaController mc = new MediaController(this);
video.setMediaController(mc);
video.requestFocus();
video.start();
mc.show();
答案 2 :(得分:1)
我印象深刻的是肮脏的方式起作用!如果你有一个可行的解决方案,那就去吧。我认为还没有一种干净的方法让RTSP流在SDK中运行。
答案 3 :(得分:1)
我们遇到了一个非常类似的问题。
目前,我正处于项目的第一步,我正在努力使视频视图正常运行。 我正在从这里获取数据:http://gdata.youtube.com/demo/我正在测试所有视频链接。
RTSP 3GP视频真的是非常低质量的视频....而且无法访问mp4(优质)视频。我真的不知道如何使它工作,因为我认为MP4流只适用于高级开发人员......
答案 4 :(得分:1)
答案 5 :(得分:0)
我使用以下代码显示了YouTube视频。我希望它有用,但请告诉我如何改进它。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.youtube.com/watch?v=...")));
}
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
}
答案 6 :(得分:0)
视频标题表明它适用于Android。所以,尝试一个很好的视频链接来试验。这是我使用的一个:
RTSP://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov
我在Nexus和三星平板电脑上工作得很好。
答案 7 :(得分:0)
您是否可以访问互联网? 如果没有,请将Internet权限添加到清单文件
<uses-permission android:name="android.permission.INTERNET" />
还请尝试这些URI:
rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov
http://www.wowza.com/_h264/BigBuckBunny_175k.mov