【发布时间】:2015-07-15 02:40:22
【问题描述】:
我搜索了很多内容以获取 Youtube 视频的流 url,但它们都不起作用。 Youtube 是否取消了对 android videoview 中流式视频的支持?
代码示例:
public String getYoutubeUriForVideoId(String videoId) {
String url = "";
try {
Log.e(TAG, "Input video id: "+videoId);
String YOUTUBE_VIDEO_INFORMATION_URL =
"http://m.youtube.com/watch?ajax=1&layout=mobile&tsp=1&utcoffset=330&v="+videoId;
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";
Log.e(TAG, "Url: "+YOUTUBE_VIDEO_INFORMATION_URL);
HttpClient lClient = new DefaultHttpClient();
HttpGet lGetMethod = new HttpGet(YOUTUBE_VIDEO_INFORMATION_URL);
// setting the header as to get the high quality video url
lGetMethod.setHeader("User-Agent", USER_AGENT);
HttpResponse lResp = lClient.execute(lGetMethod);
if(lResp == null)
return null;
String lInfoStr = EntityUtils.toString(lResp.getEntity(), "UTF-8");
Log.e(TAG, "Response: "+lInfoStr);
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");
url = fmt_stream_map.getJSONObject(0).getString("url");
} catch(Exception e) {
Log.e(TAG, e);
}
Log.e(TAG, "Youtube stream url: "+url);
return url;
}
【问题讨论】:
-
你为此做了什么?可以发一段代码吗?
-
你能从你这边开始开发吗??请先google,然后来解决。
-
我已经更新了我的问题并添加了示例代码,请检查
标签: android video-streaming youtube-data-api android-videoview