在我的 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时,该参数被忽略并且质量仍然很差。
如何获得更好质量的视频?当然,假设视频以这种质量可用。为什么我的参数被忽略?