uni-app 红米k40s无法拍摄视频
uni-app 红米k40s无法拍摄视频
示例代码:
testVideo() {
uni.chooseVideo({
sourceType:['camera'],
success(res){
console.log("
操作步骤:
testVideo() {
uni.chooseVideo({
sourceType:['camera'],
success(res){
console.log("
预期结果:
如上代码所示
实际结果:
可以正常拍摄视频
项目信息 | 描述 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | windows10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.24 |
手机系统 | Android |
手机系统版本号 | Android 14 |
手机厂商 | 红米 |
手机机型 | Redmi K40S |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
bug描述:
os为小米澎湃1.0.5.0
进入应用时已经清空了后台的其他应用。
拍摄视频后,相机无反应,但是应用也不会直接退出。
代码中也不会走到错误回调。
2 回复
小米澎湃OS系统也遇到这个问题,拍完视频应用直接卡死,只能强制杀进程
在处理uni-app在特定设备(如红米K40s)上无法拍摄视频的问题时,首先需要确认几个关键点:设备权限、设备兼容性、以及uni-app和相关插件的使用方式。以下是一个简要的代码案例和检查流程,帮助你定位并可能解决问题。
1. 检查设备权限
确保应用已正确请求并获得了摄像头和存储权限。在manifest.json
中配置必要的权限:
"mp-weixin": { // 示例平台,针对其他平台如Android、iOS需相应配置
"requiredPrivateInfos": ["chooseImage", "saveImageToPhotosAlbum"]
},
"plus": {
"distribute": {
"android": {
"permissions": [
"android.permission.CAMERA",
"android.permission.WRITE_EXTERNAL_STORAGE"
]
}
}
}
在代码中动态请求权限(对于Android 6.0及以上版本):
#ifdef APP-PLUS
const main = plus.android.importClass('android.app.Activity');
const context = plus.android.runtimeMainActivity();
const PackageManager = plus.android.importClass('android.content.pm.PackageManager');
if (context.checkSelfPermission(PackageManager.PERMISSION_CAMERA) !== PackageManager.PERMISSION_GRANTED) {
const requestCode = 1;
const permissions = [PackageManager.PERMISSION_CAMERA, PackageManager.PERMISSION_WRITE_EXTERNAL_STORAGE];
context.requestPermissions(permissions, requestCode);
}
#endif
2. 使用uni-app拍摄视频
使用uni-app的uni.createCameraContext()
接口进行视频拍摄:
const cameraContext = uni.createCameraContext();
function startRecording() {
cameraContext.startRecord({
success: function() {
console.log('开始录像');
},
fail: function(err) {
console.error('录像失败', err);
}
});
}
function stopRecording() {
cameraContext.stopRecord({
success: function(res) {
console.log('录像结束', res.tempVideoPath);
},
fail: function(err) {
console.error('停止录像失败', err);
}
});
}
3. 设备兼容性测试
由于不同设备的硬件和软件环境差异,建议在不同的Android设备上进行测试。如果问题仅出现在红米K40s上,可能需要检查该设备的Android版本、MIUI版本是否有特定的兼容性问题。
4. 调试和日志
利用uni-app的开发者工具和真机调试功能,查看详细的错误日志,以便进一步分析问题所在。
通过上述步骤,你应该能够定位到问题的具体原因,并可能找到解决方案。如果问题依旧存在,可能需要考虑是否是uni-app框架或相关插件的已知问题,查阅官方文档或社区论坛获取更多信息。