我正在编写一个使用流媒体播放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();
Run Code Online (Sandbox Code Playgroud)
但它在G1设备和模拟器上都会抛出错误(模拟器根据邮件列表有一些防火墙问题)这是错误信息
ERROR/PlayerDriver(35):命令PLAYER_INIT已完成,错误或信息PVMFFailure
第二种方法:
从http://www.youtube.com/get_video?v=&t = <>&<>获取3gp文件路径的黑客方法 .获取文件路径后,我可以调用setVideoURI,它可以正常播放.但这是达到要求的黑客方式.我也检查过Youtube应用程序,它也可以通过hack方式播放youtube网址.(使用logcat检查)
我尝试从VideoView更改为MediaPlayer,但没有更改错误.
有一种"干净"的方式吗?
请让我知道你的想法.
youtube streaming android android-mediaplayer android-videoview
我有运行的一个问题嵌入HTML5的Youtube在网页视图.我想在我的应用程序上播放Youtube视频.我决定使用WebView而不是VideoView,因为我想让我的系统更灵活地从网上播放视频.
虽然有很多方法可以在Android上玩youtube,但我会使用youtube嵌入式版本." http://www.youtube.com/embed/___________________ ".因为这是我在你的android不支持flash时发现的解决方案之一.
问题:
WebView正常加载,包括嵌入的Youtube.但是我开始在youtube上看到黑屏.
当我点击它.它仅加载第一个图像,但之后它不播放.我尝试在Android浏览器上播放,它运行顺畅但不在webView中.
知道为什么吗?
以下只是我的代码片段:
WebView wv = new WebView(getApplicationContext());
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html");
setContentView(wv);
Run Code Online (Sandbox Code Playgroud)
以下是我发现非常有用的一些资源:
http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html
http://www.broken-links.com/2009/10/06/building-html5-video-controls-with-javascript/
提前感谢您的支持和帮助:)
更新(2011年6月13日):
我成功加载了WebView中的http://m.youtube.com,但无法播放任何视频.但是当我尝试在我的Android浏览器上加载URL时,它可以播放.
从这里开始,我注意到我的WebView上的youtube站点没有登录.那么我们如何允许WebView使用与我手机中的Youtube帐户相同的凭据?它真的有效吗?
任何人都可以解释为什么我放在网页浏览器中时无法点击并在Android手机上播放YouTube视频片段?
我已经将一个非常简单的应用程序放在一起(它正在扩展,但没有立即)并且它具有使用Android SDK分配的Web视图.
webview的其余部分按预期工作(文本,图像,CSS等),但是,YouTube剪辑不会显示,它们只显示为黑色或白色矩形(视频嵌入的位置应该是).
我们使用相同的视图在iPhone应用程序上显示相当的内容,没有任何问题.
这是使用基本的Flash嵌入,iPhone上的Safari浏览器将这些转换为H.264并在QuickTime中很好地播放它们.
Android能做同样的事吗?
这是嵌入代码,作为一个例子....
<object width="120" height="73">
<param name="movie" value="http://www.youtube.com/watch?v=ZVYIBIlTIQs&feature=youtube_gdata"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/watch?v=ZVYIBIlTIQs&feature=youtube_gdata" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="120" height="73"></embed>
</object>
Run Code Online (Sandbox Code Playgroud)