uniapp 录像
Uniapp 录像功能实现方法
在Uniapp中实现录像功能可以通过调用系统相机或使用第三方插件完成。以下是几种常见方法:
使用uni.chooseVideo方法 该方法允许用户从相册选择视频或调用相机拍摄新视频:
uni.chooseVideo({
sourceType: ['camera'],
maxDuration: 60,
success: function(res) {
console.log(res.tempFilePath);
}
});
参数说明:sourceType指定来源,camera表示直接调用摄像头;maxDuration设置最大录制时长(秒)。

使用uni-media-recorder组件 需要安装uni-media-recorder插件:
<uni-media-recorder
@start="onStart"
@stop="onStop"
@error="onError">
</uni-media-recorder>
methods: {
onStop(tempFilePath) {
console.log('视频路径:', tempFilePath);
}
}
使用HTML5的MediaRecorder API 适用于H5平台,需注意浏览器兼容性:

navigator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
});
平台差异注意事项
- 微信小程序:需在manifest.json中声明摄像头权限
- APP端:Android需要动态申请CAMERA和RECORD_AUDIO权限
- H5端:需网站启用HTTPS协议才能调用摄像头
录像参数配置
通过camera组件可实现更灵活的录像控制:
<camera
device-position="back"
flash="auto"
@error="error">
</camera>
可通过bindstop事件获取录像文件,支持设置分辨率、帧率等参数。
文件上传处理
获取临时路径后可使用uni.uploadFile上传:
uni.uploadFile({
url: 'https://example.com/upload',
filePath: tempFilePath,
name: 'video',
success: (res) => {
console.log(res.data);
}
});
常见问题解决方案
- 安卓设备报权限错误:需在原生配置中添加权限声明
- iOS无法保存视频:检查是否配置了NSPhotoLibraryUsageDescription
- H5端无法调用摄像头:检查域名是否备案且支持HTTPS
- 录制时间过短:检查maxDuration参数是否设置合理
以上方法覆盖了Uniapp中实现录像功能的主要技术方案,开发者可根据具体平台需求选择适合的实现方式。实际开发时应充分考虑各平台的特性差异和权限要求。






