如何在react-native-video中使用iOS/Android系统原生视频控件
React Native调用系统原生视频控件相关解答
首先明确结论:完全可以调用iOS、Android两端的系统内置原生视频控件实现播放功能,目前主流有两种落地实现方案:
- 方案一:使用社区成熟的第三方库
react-native-video快速实现
这个库是React Native生态中应用最广的视频播放库,底层默认对接两端原生播放内核,仅需简单配置即可唤起系统原生控件:- iOS端底层基于系统原生AVPlayer实现,设置
controls={true}属性即可直接调出你提到的系统原生控制条,无需额外适配 - Android端可配置使用系统原生MediaPlayer或ExoPlayer内核,同样开启controls属性即可唤起对应系统原生控制UI
- iOS端底层基于系统原生AVPlayer实现,设置
- 方案二:自行封装原生桥接模块
如果需要更高的自定义程度,你也可以自己封装原生模块桥接到React Native层:- iOS端封装系统原生
AVPlayerViewController,暴露对应属性和方法给RN层调用即可 - Android端封装系统原生
VideoView或Jetpack系列的PlayerView,桥接完成后就能直接在RN页面调用原生控件
- iOS端封装系统原生
iOS端系统原生视频控件的显示效果参考:
补充说明:原生视频控件相比纯JS实现的播放器,解码、渲染性能优势更明显,播放高清、大体积视频时流畅度更高,也天然支持系统级的手势操作、画中画等特性,不需要额外做适配。
内容的提问来源于stack exchange,提问作者Charles Inwald
相关产品推荐
相关产品推荐

