【发布时间】:2013-03-22 09:31:41
【问题描述】:
在我的 Android 应用程序中,我有一个嵌入的 YouTube 视频。
我从原始网址获取 Youtube 视频 ID,如下所示:
private String extractYoutubeId(String url) {
String video_id = "";
if (url != null && url.trim().length() > 0 && url.startsWith("http")) {
String expression = "^.*((youtu.be" + "\\/)"
+ "|(v\\/)|(\\/u\\/w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#\\&\\?]*).*";
CharSequence input = url;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
String groupIndex1 = matcher.group(7);
if (groupIndex1 != null && groupIndex1.length() == 11)
video_id = groupIndex1;
}
}
return video_id;
}
这适用于像这样的原始网址:http://www.youtube.com/watch?v=A7ry4cx6HfY
当我这样做时,视频已加载并播放得非常好,但质量很差。 (我认为是 240p 甚至更差)
所以通过谷歌搜索,我知道您只需要添加一个像 &vq=large 或 &vq=hd1080 这样的参数即可获得 480p/1080p。
但是当我使用像http://www.youtube.com/watch?v=A7ry4cx6HfY&vq=hd1080 这样的网址时,该参数被忽略并且质量仍然很差。
如何才能获得更高质量的视频?当然,假设视频以这种质量可用。为什么我的参数被忽略了?
【问题讨论】:
标签: android youtube video-streaming android-videoview