我正在使用videoview显示以下youtube视频
http://www.youtube.com/watch?v=FovFG3N_RSU
我不希望看到黑屏但想要将视频的中框显示为视频封面。
在IOS中,有
如何在android中完成?
答案 0 :(得分:3)
这取决于设备Android版本和Flash支持功能。 除非您在设备上安装了闪存,否则您无法使用VideoView setVideoUri方法播放视频(在将http链接解析为uri之后)。
以下代码对我有用,但这对你来说是一种破解 将此代码用于没有安装闪存的设备。
public Uri getYoutubeUriForVideoId()
{
String YOUTUBE_VIDEO_INFORMATION_URL = "http://m.youtube.com/watch?ajax=1&layout=mobile&tsp=1&utcoffset=330&v=";
String USER_AGENT ="Mozilla/5.0 (Linux; U; Android 2.2.1; en-gb; GT-I9003 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
HttpClient lClient = new DefaultHttpClient();
HttpGet lGetMethod = new HttpGet(YOUTUBE_VIDEO_INFORMATION_URL + videoId);
// setting the header as to get the high quality video url
lGetMethod.setHeader("User-Agent",UrlConstants.USER_AGENT);
HttpResponse lResp = lClient.execute(lGetMethod);
if(lResp == null)
return null;
String lInfoStr = EntityUtils.toString(lResp.getEntity(), "UTF-8");
JSONObject videoInfoJson = new JSONObject(lInfoStr.substring(4,lInfoStr.length()));
JSONObject content = (JSONObject) videoInfoJson.get("content");
JSONObject video = (JSONObject) content.get("video");
JSONArray fmt_stream_map = video.getJSONArray("fmt_stream_map");
String url = fmt_stream_map.getJSONObject(0).getString("url");
return Uri.parse(url);
}