gpt4 book ai didi

android - Exoplayer - 是否可以在加载之前检查 URL 是否是有效的 mp4/webm url?

转载 作者:行者123 更新时间:2023-12-03 23:43:32 32 4
gpt4 key购买 nike

是否可以在尝试加载之前检查它是否实际上是可以与播放器一起加载的 URL?

String mUrl = " --- ";
player = new SimpleExoPlayer.Builder(this).build();

playerView.setPlayer(player);

DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this,
Util.getUserAgent(this, "yourApplicationName"));
Uri uri = Uri.parse(mUrl);

MediaSource videoSource =
new ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(uri);
player.prepare(videoSource);
或者如果有一个图书馆可以做到这一点?

最佳答案

解决此问题的一种方法是检查您尝试加载的 URL 的扩展名。例如,网址:http://thisisavideo/randompath/random_id.mp4最有可能指向 mp4 资源。但是,这种方法存在两个主要问题:

  • 您不能真正依靠 URL 扩展。 http://simpleurlhaha.com也可能指向 mp4 资源。
  • 此方法不保证 URL 有效。

  • 一种保证有效的方法但是,是做一个 HTTP Head request在 URL 上并检查 Content-Type .您可以通过 Retrofit 实现此目的或您正在使用的任何其他网络库。如果 URL 有效,您将收到类似于以下内容的响应:
    HTTP/1.1 200 OK
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Accept-Ranges: bytes
    Content-Length: 1034745
    Content-Type: video/mp4
    Date: Wed, 17 Sat 2020 13:01:19 GMT
    Last-Modified: Fri, 8 Aug 2019 21:12:31 GMT
    Server: Apache
    如您所见,您可以通过对 Content-Type 进行 if-check 来检测它是 MP4 还是 WebM URL。 field 。
    就个人而言,我认为上面的建议很昂贵,因为它涉及进行额外的网络调用并且增加了整体处理时间。如果这仍然适合您的用例。请继续。

    关于android - Exoplayer - 是否可以在加载之前检查 URL 是否是有效的 mp4/webm url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64309888/

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