问题描述
我们已将录制的视频存储在MS azure中,并且出于安全目的,MS azure需要在HLS URL中添加安全令牌。
例如,如果实际URL是http://samplevideo.m3u8
,而安全令牌是XXX
,则需要从天青获得视频访问权限的URL是http://samplevideo.m3u8?XXX
。
此外,.ts
清单文件中包含的.m3u8
URL也需要更改。
例如,如果包含的.ts
URL是PQR_vid_10.ts
,则需要将其转换为PQR_vid_10.ts?XXX
在android中,我们使用的是Exo-player,它具有一个不错的API,该API允许通过提供回调来修改每个URL。 例如,我们将以下代码用于exo-player,并且效果很好:
private void buildHlsMediaSource() {
Uri uri = Uri.parse(testHlsUrl);
HlsMediaSource hlsMediaSource =
new HlsMediaSource.Factory(
new ResolvingDataSource.Factory(
new DefaultHttpDataSourceFactory(Util.getUserAgent(this,getString(R.string.app_name))),(DataSpec dataSpec) -> dataSpec.withUri(resolveUri(dataSpec.uri))))
.createMediaSource(uri);
player.prepare(hlsMediaSource);
player.setPlayWhenReady(false);
player.addListener(eventListener);
}
private Uri resolveUri(Uri uri) {
String resultPath = uri.toString()+"?XXX";
return Uri.parse(resultPath);
}
但是,我们无法为iOS AVPlayer找到一个好的/类似的解决方案。 我们已经看到,一些SO答案建议使用本地代理服务器来解决此问题。但是我们不确定这是否是最终的解决方案,还有其他更好,更直接的解决方案是否可用。
因此,您能为我们提供一个可能的简单/直接解决方案或示例代码片段或此用例的任何其他文档吗?
预先感谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)