问题
Uniapp 使用 nview-ui
组件 <u-upload>
上传录屏时,在有的手机上显示正常,但是在一些设备(android的一些其他设备)录屏预览时画质很模糊,但是用设备的自带相机录像后再应用里从相册选择又是清晰的。
实现
// 调用原生android摄像头
var VIDEOZOOM = 200;
var MediaStore = plus.android.importClass("android.provider.MediaStore");
var Intent = plus.android.importClass("android.content.Intent");
// 导入后可以使用new方法创建类的示例对象
var intent = new Intent("android.media.action.VIDEO_CAPTURE");
intent.putExtra("android.intent.extra.videoQuality", 1);//0 means low quality, 1 means high quality
//intent.putExtra("android.provider.MediaStore.EXTRA_OUTPUT", url);
intent.putExtra("android.intent.extra.durationLimit", 3);//设置录像时间
var main = plus.android.runtimeMainActivity();
main.startActivityForResult(intent,VIDEOZOOM);
//获取返回参数
main.onActivityResult = function(requestCode, resultCode, data) {
var context = main;
plus.android.importClass(data);
var uri = data.getData();
var resolver = context.getContentResolver();
plus.android.importClass(resolver);
var cursor = resolver.query(uri, null, null, null, null);
plus.android.importClass(cursor);
cursor.moveToFirst();
var column = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
// 获取录制的视频路径
var filePath = cursor.getString(column);
};
- 需要自己实现录屏调用以及页面处理(页面显示样式、拿到地址后页面的预览、删除等逻辑)
- 没有反应时,确认自己的相关权限有没有开启(麦克风、相机、文件读写等)
- 业务页面显示如果使用标签,需要在
manifest.json
中的App模块配置
勾上VideoPlayer(视频播放)
(重新打自定义基座后生效)(uniapp 组件 Video)
参考地址
结束
共勉!