我正在使用 Android Studio,我需要在我的应用程序中添加 ExoPlayer,并且我需要使用特定的用户代理,所以我找到了这个 MagicalExoPlayer:
https://github.com/HamidrezaAmz/MagicalExoPlayer
ExoPlayer 的这个“版本”非常易于使用,在自述文件中我们可以看到很容易放置特定的 header 。 所以我尝试放置一个特定的用户代理,如下所示:
HashMap<String , String> extraHeaders = new HashMap<>();
extraHeaders.put("User-Agent","My User Agent");
andExoPlayerView.setSource("STREAM_URL", extraHeaders);
但是用户代理不会改变,我有ExoPlayer的默认用户代理。
那么如何将特定的用户代理与 ExoPlayer 一起使用? (如果我能使用 MagicalExoPlayer 就更好了)。
最佳答案
在为播放器准备数据源时,将用户代理提供给 Exoplayer。示例:
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context,"MY_USER_AGENT");
由于 MagicalExoPlayer 是 Exoplayer 的包装,因此它已将该字段设置为常量。请参阅 github 存储库中的 PublicValues.java class。您可以要求作者向该字段公开公共(public) setter 。另一种方法是将库模块复制到您的项目并更改 PublicValues
类中 User Agent 的值。您需要更改 build.gradle 来编译该模块。我强烈建议询问作者,除非有必要,否则不要复制模块,因为之后您必须手动更新模块。
关于java - 如何在android中将特定的用户代理与(神奇的)ExoPlayer一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57837407/