2009-06-17 200 views
28

我正在编写一个应用程序,使用流媒体播放YouTube视频。流媒体Youtube视频

第一种方法:

我收到RTSP URL使用GData API与视频。 以下是播放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完成,错误或 信息PVMFFailure

方法二:

一个黑客的方法来从 获取3GP文件的路径& t = <> & <> .. 得到文件路径后,我可以调用setVideoURI,它播放 罚款。但这是达到要求的黑客方式。 我已经检查了YouTube应用还,它也做黑客的方法来发挥 的YouTube网址。(经过与logcat的)

我曾尝试从VideoView到MediaPlayer的,但错误没有变化而变化。

是否有“干净”的方式来做到这一点?

请让我知道您的想法。

+1

你能解释一下可能的黑客多一点?我面临同样的问题。 – Janusz 2012-04-15 17:17:49

+0

你不能仅仅调用YouTube播放器来播放视频吗? (类似于iPhone的YouTube应用程序的工作原理?) – Geoff 2009-08-12 03:45:19

+0

还可以看看[如何使用YouTube API获取YouTube视频链接的缩略图?](http://stackoverflow.com/q/2068344/995926)有一个智能如何获取rtsp网址的答案:以此为例:http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&prettyprint=true&alt=json – rekire 2012-11-22 07:18:51

回答

1

令人印象深刻的是,肮脏的方式在所有的工作!如果你有一个可行的解决方案,那就去吧。我认为还没有一种干净的方式让RTSP流在SDK中工作。

2

如果你愿意做的工作在一个新的活动,下面的工作的设备上,但不是在模拟器上:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

2

有时Uri.parse回报“空”,因为着解析rtsp协议而不是http协议。

通过登录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(); 
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 
} 
1

我们遇到了一个非常类似的问题。

目前我在我的项目的第一步,我试图让视频视图简单地工作。 我正在从这里获取数据:http://gdata.youtube.com/demo/并且我正在测试所有视频链接。

RTSP 3GP视频确实真的是非常低质量的视频....并且没有办法访问mp4(高质量)的视频。我真的不知道如何使它工作,因为我认为,MP4流是只提供给开发者溢价....

1

投掷目光掠过Youtube API

我想这也是使用YouTube应用程序(你别“不想)

但仅仅是指可能你会发现一些关键要解决它

0

上的视频标题表明它的工作为Android。所以,请尝试一个好的视频链接进行试验。这是一个我用:

RTSP://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov

我在Nexus和三星平板电脑的伟大工程。

0

您是否可以访问互联网? 如果没有,请在Internet权限添加到清单文件

​​

,也请尝试这些URI:

rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov 

http://www.wowza.com/_h264/BigBuckBunny_175k.mov