Phi*_*oda 6 youtube android video-streaming android-videoview
在我的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;
}
Run Code Online (Sandbox Code Playgroud)
这适用于这样的原始网址:http://www.youtube.com/watch?v = A7ry4cx6HfY
当我这样做时,视频加载并播放完美,但质量非常糟糕.(240p甚至更糟,我认为)
所以从谷歌搜索,我知道你只需要添加一个参数,如&vq=large或&vq=hd1080获得480p/1080p.
但是当我使用这样的网址http://www.youtube.com/watch?v=A7ry4cx6HfY&vq=hd1080时,参数会被忽略,质量仍然很差.
如何才能获得质量更好的视频?当然,假设视频以该质量提供.为什么我的参数被忽略了?
我通过使用官方的Android 版 Google Youtube API 解决了这个问题。
尝试自己实现视频获取可能不是最好的主意。使用 API 可以为您做到这一点,而且效果很好。
编辑
这里是 API 的链接: https: //developers.google.com/youtube/android/player/