React Native调用系统相机同时支持拍照和视频录制的实现方案咨询
实现方案
1. 升级现有依赖(最低成本方案)
你之前测试的react-native-image-picker最新v7+版本已经支持混合模式配置,直接在启动参数里设置mediaType: 'mixed',即可唤起系统默认相机同时支持拍照、录视频两种模式,用户可在系统相机界面自主选择操作方式,不需要你在应用内单独设置两个入口按钮。
2. 跨平台功能完整的替代依赖
如果项目兼容或者你需要更灵活的自定义能力,可以选用以下两个依赖:
expo-image-picker:如果你的项目基于Expo开发,直接设置参数mediaTypes: ImagePicker.MediaTypeOptions.All,唤起的系统相机原生支持用户自主选择拍照/录视频模式,两端适配无需额外配置。react-native-vision-camera:如果你想要完全复刻三星相机轻点拍照、长按录视频的交互逻辑,不需要依赖系统相机界面,可以用这个库自定义相机页面,自己实现拍摄按钮的点击、长按事件分别绑定拍照、录视频逻辑,适配iOS和Android全版本,性能和可定制性都更高。
3. 自定义原生模块方案
如果上述依赖都不符合你的业务要求,可以自己封装原生模块实现:
- iOS端:使用系统自带的
UIImagePickerController,配置mediaTypes属性同时包含图片、视频两种媒体类型,唤起后就支持用户自主选择拍摄模式,拍摄完成后将结果回调给React Native层即可。 - Android端:构建系统相机Intent时配置支持的媒体类型同时包含图片和视频,调用系统相机后在
onActivityResult中接收拍摄结果,再传递给RN层。
内容的提问来源于stack exchange,提问作者justin franklin
相关产品推荐
相关产品推荐

