使用Android ExoPlayer用外部存储的密钥覆盖AES密钥

问题描述

我有一种启动视频播放器的方法:

public void startPlayer(String link) {
        PlayerView playerView = findViewById(R.id.video_player);
        DefaultTrackSelector trackSelector = new DefaultTrackSelector();
        DefaultTrackSelector.Parameters defaultTrackParam = trackSelector.buildUponParameters().build();
        trackSelector.setParameters(defaultTrackParam);
        player = ExoPlayerFactory.newSimpleInstance(this,trackSelector);
        playerView.setPlayer(player);
        DefaultDataSourceFactory fac = new DefaultDataSourceFactory(this,Util.getUserAgent(this,getString(R.string.app_name)));
        HlsMediaSource videoSource = new HlsMediaSource.Factory(fac).createMediaSource(Uri.parse(link));
        player.prepare(videoSource);
    }

它需要link,这是一个.m3u8 hsl流文件的位置的uri(“ http://someUri.m3u8”)。在.m3u8文件中:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2020-08-22T19:04:56.742Z
#EXT-X-KEY:METHOD=AES-128,URI="https://internally_stored_uri_key_etc",IV=0x67C6697351FF4AEC29CDBAABF2FBE346
#EXTINF:5.005,235/19/04/56_742.ts
#EXTINF:5.005,235/19/05/01_747.ts
#EXTINF:0.6006,235/19/05/06_752.ts
#EXTINF:0.767433333,235/19/05/07_353.ts

我要执行的操作将https://internally_stored_uri_key_etc替换为从其他位置获得的我自己的Uri。但是我不想每隔几秒钟手动下载.m3u8文件并更新所有关键的URI,多数民众赞成。

相反,我希望有人知道一种告诉exoPlayer为我做到这一点的方法。使用诸如player.overrideKey(myNewKeyUri)之类的命令,这只是我希望存在的一个示例。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...