流媒体Youtube视频

时间:2009-06-17 15:16:24

标签: android youtube streaming android-mediaplayer android-videoview

我正在编写一个使用流媒体播放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,但错误没有变化。

有没有“干净”的方法来做到这一点?

请让我知道你的想法。

8 个答案:

答案 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)

盯着Youtube API

我认为这也使用youtube app(你不想要的)

但是参考可能你会发现一些解决它的关键

答案 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