【发布时间】:2016-08-24 13:32:16
【问题描述】:
我正在尝试在 AVPlayer 中播放 AES 加密流。通常,密钥的链接会传递给 M3U8 播放列表中的播放器。在我的场景中,密钥被分成两半。前半部分已传递由服务器,我应该在应用程序中附加另一半以在播放时解密
我已经在 Android 上做到了,有没有办法在 iOS 上也做到这一点?
这是播放列表:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=284x160
chunklist_w670540365_b200000.m3u8?t=57b5b16d3824d
#EXT-X-STREAM-INF:BANDWIDTH=850000,RESOLUTION=640x360
chunklist_w670540365_b850000.m3u8?t=57b5b16d3824d
这是块列表:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:13544
#EXT-X-KEY:METHOD=AES-128,URI="http://example.com/api/getEncryptionKey?t=57b5b16d3824d"
#EXTINF:9.6,
media_w670540365_b200000_13544.ts?t=57b5b16d3824d
#EXTINF:9.6,
media_w670540365_b200000_13545.ts?t=57b5b16d3824d
#EXTINF:10.56,
media_w670540365_b200000_13546.ts?t=57b5b16d3824d
这就是 AVPlayer 的作用:
1- 播放列表被下载并选择了一个块列表 2-播放器下载块列表 3- 下载解密块的解密密钥 4-播放器开始按顺序下载块以播放它们 5- 每个块都被解密和播放
我需要做的是: 第 3 步后,当玩家调用 api 以使用此链接获取加密密钥:'http://example.com/api/getEncryptionKey?t=57b5b16d3824d',我想拦截响应并附加另一半密钥
有可能吗?
【问题讨论】:
-
您是如何在 Android 中做到这一点的?请分享一些Android的示例代码。我在 iOS 上做过,但在 Android 上卡住了
-
@Vashum 是的,我已经在 android 上完成了,你在 android 上使用什么视频播放器?
-
EXO玩家,你能帮忙吗?任何示例代码都会很棒????
-
你能帮忙吗?
-
嗨@HadiNajem,你能分享你的Android自定义数据源代码吗,因为我坚持在Android上实现这个。
标签: ios swift aes avplayer http-live-streaming