gpt4 book ai didi

android - 如何检查 URL 是否为视频 URL

转载 作者:行者123 更新时间:2023-12-05 00:16:38 32 4
gpt4 key购买 nike

我想创建一个项目,无需使用 ExoPlayer 下载即可观看在线视频。

ExoPlayer支持多种格式like these我想支持所有这些格式(渐进式容器格式)。我搜索了一下,没有找到任何内容

我想检查用户输入的 URL 是否是受支持的 URL。如有任何帮助,我们将不胜感激。

我正在使用ExoPlayer。您可以使用ExoPlayer try-catch

我尝试了这些代码,但不起作用,因为某些 URL 是 HTTPS 或某些 URI,在格式后包含一些字符

String URL = et_url.getText().toString();
if(URL.matches("http://[a-zA-Z0-9._-]+.[a-z]/[a-zA-Z0-9._-].mp4"))
{

}
else if (URL.matches("http://[a-zA-Z0-9._-]+.[a-z]/[a-zA-Z0-9._-].mkv"))
{

}

最佳答案

您可以“可能”检查 URL 是否通过您尝试编写的尾随文件扩展名正则表达式找到视频资源。

但理论上,the URL representation它本身不会告诉您 URL(或更广泛地说,URI)指向的网络上的给定资源是否是视频。 URL 可以是 http://can_you_tell_this_is_a_video 之类的任何内容,但仍然可以找到视频。

此外,很难/不可能判断视频是否真的可以由播放器“播放”(支持的编码、文件格式等),即使您知道这是一个视频资源。解决该问题的更简单方法是尝试向玩家提供从用户处收到的任何 URL。如果玩家说它无法播放,则继续下一步。

另一方面,如果您只需要识别某个 URL 是否定位为视频资源,那么最直接的方法就是 a HTTP HEAD request使用 HTTP 客户端访问 URL,然后检查 the Content-Type header查看资源是否在 the common video MIME types 之间.

举个例子,如果您在 https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4 上执行 HEAD 请求(您可以测试它 here ) ,HTTP 响应如下所示(服务器需要支持 HEAD 请求并提供正确的内容类型 header ,通常应该如此):

HTTP/1.1 200 OK
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Accept-Ranges: bytes
Content-Length: 1055736
Content-Type: video/mp4
Date: Wed, 22 May 2019 20:51:28 GMT
Last-Modified: Fri, 17 Jun 2016 17:43:54 GMT
Server: Apache

通过此响应,现在您可以检查 Content-Type header 值 - 如您所见,在此示例中资源的媒体类型为 video/mp4 .

关于android - 如何检查 URL 是否为视频 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56263927/

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