无法在 Android 中使用 React Native Video DRM Fork 播放 DRM 视频
Posted
技术标签:
【中文标题】无法在 Android 中使用 React Native Video DRM Fork 播放 DRM 视频【英文标题】:Unable to play DRM Video with React Native Video DRM Fork in Android 【发布时间】:2020-08-03 18:08:11 【问题描述】:我正在尝试使用React Native DRM Fork 播放任何 DRM 流。不幸的是,当我在 android 中使用以下代码 sn-p 时,出现以下错误:-
代码 sn-p:-
<Video
source=uri: 'https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd'
drm=
type: 'widevine',
licenseServer:
'https://proxy.uat.widevine.com/proxy?video_id=efd045b1eb61888a&provider=widevine_test',
style=styles.video
/>
Android Logcat 中的错误:-
E/MediaPlayerNative: error (1, -2147483648)
E/MediaPlayer: Error (1,-2147483648)
我也尝试了以下代码,结果相同:-
<Video
source= uri: 'https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd',
drm:
type: 'widevine',
licenseServer: 'https://proxy.uat.widevine.com/proxy?video_id=efd045b1eb61888a&provider=widevine_test',
style=styles.video
/>
任何非 DRM 视频都可以正常播放 :)
【问题讨论】:
【参考方案1】:调试 DRM 和视频可能会很棘手,因为错误代码并不总是如您所见非常有用。如果访问该视频允许这样做,那么在其他播放器中尝试该视频通常也很有用 - 例如例如,如果观看视频不需要用户登录。
对于上面的manifest和上面的LA URL组合,当这样测试时,其他播放器也产生了错误。一些容易测试的包括:
https://shaka-player-demo.appspot.com/ https://bitmovin.com/demos/drm https://demo.theoplayer.com/test-your-stream-with-statistics您还可以在开发者控制台中查看错误报告,这些通常会提供更多信息。
对于您的情况,从上面的测试看来,DRM 许可证响应表明存在一些限制 - 例如,这些限制可能与设备的安全级别有关。如果您有其他可以测试的内容,您也可以通过确认它在上述内容和您的代码上都有效来验证这一点。
【讨论】:
【参考方案2】:这是由于 exoplayer 没有正确链接,在我的情况下,我必须手动链接 exoplayer,然后在 react-native.config.js 中添加以下 json
module.exports =
dependencies:
'react-native-video':
platforms:
android: null,
,
,
,
;
【讨论】:
以上是关于无法在 Android 中使用 React Native Video DRM Fork 播放 DRM 视频的主要内容,如果未能解决你的问题,请参考以下文章
React-Native .apk 文件在更高版本的 android 设备中失败
默认使用 React Native 打开 android 模拟器
cmd : react-native run-android 在每次文件更改时
react-native:无法使用发布模式访问Android权限