gpt4 book ai didi

android - 获取包含参数的 YouTube 视频 ID

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:22 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我有一个嵌入式 YouTube 视频。

我从原始 url 获取 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;
}

这适用于像这样的原始 url:http://www.youtube.com/watch?v=A7ry4cx6HfY

当我这样做时,视频可以完美加载和播放,但质量很差。 (我认为 24​​0p 甚至更差)

因此,通过谷歌搜索,我知道您只需添加一个参数,如 &vq=large&vq=hd1080 即可获得 480p/1080p。

但是当我使用这样的 url 时 http://www.youtube.com/watch?v=A7ry4cx6HfY&vq=hd1080参数被忽略,质量仍然很差。

如何获得更好质量的视频?当然,前提是视频可以达到那种质量。为什么我的参数被忽略了?

最佳答案

在这里试试这段代码。

// (?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})
final static String reg = "(?:youtube(?:-nocookie)?\\.com\\/(?:[^\\/\\n\\s]+\\/\\S+\\/|(?:v|e(?:mbed)?)\\/|\\S*?[?&]v=)|youtu\\.be\\/)([a-zA-Z0-9_-]{11})";

public static String getVideoId(String videoUrl) {
if (videoUrl == null || videoUrl.trim().length() <= 0)
return null;

Pattern pattern = Pattern.compile(reg, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(videoUrl);

if (matcher.find())
return matcher.group(1);
return null;
}

你可以从这里找到我的整个解析器代码 https://github.com/TheFinestArtist/YouTubePlayerActivity/blob/master/library/src/main/java/com/thefinestartist/ytpa/utils/YoutubeUrlParser.java

这是我为播放 Youtube 视频而制作的有用的开源软件。 https://github.com/TheFinestArtist/YouTubePlayerActivity

关于android - 获取包含参数的 YouTube 视频 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15741234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com