h5+plus照片拍摄及相册选择

5+sdk封装的内容特别强大,只需要简简单单的一些代码就可以了,下面直接上代码

        function captureImage(){
    var cmr = plus.camera.getCamera();//获取摄像头对象
    var res = cmr.supportedImageResolutions[2];//获取支持的分辨率,这里是第三个分辨率,直接使用supportenImageResolutions可以获取自己手机所支持的分辨率有多少种格式,返回值类型 string[]
    var fmt = cmr.supportedImageFormats[0];//JPG格式,我的VIVO只支持JPG

    cmr.captureImage( function( path ){//成功回调函数,获取路径
            alert( "拍照成功" );
            plus.gallery.save( path, function () { //将图片保存到系统路径,再通过gallery.pick才能获取到,其实在captureImage成功回调之后图片已经被保存到了你打包的APP的目录下,但是默认情况下该目录是隐藏的,通过gallery对象来获取图片,发现并不能获得照片,几遍指定了filename参数这个文件路径也无法获取,获取的目录仍然是系统相册目录,为此,在拍照成功后,把图片再保存到系统相册中,当使用gallery获取图片的时候就能看到,缺点是这样的话会保存两张图片,一张在系统相册,另外一张在APP默认路径。目前由于本人刚学还没找到方法可以直接选择APP中被隐藏的图片。
        //alert( "保存图片到相册成功" );
    } );
        },
        function( error ) {
            alert( "Capture image failed: " + error.message );
        },
        {resolution:res,format:fmt}//分辨率和格式,必填,就是上面获取到的。
    );
}

gallery获取相片,单选或者多选:


        function galleryImg() {
    // 从相册中选择图片
    console.log("从相册中选择图片:");
    plus.gallery.pick( function(path){
        console.log(path);
    }, function ( e ) {
        console.log( "取消选择图片" );
    }, {filter:"image",filename:'_documents/siyuan/'} );//过滤器,只要照片 ,filename指定选择路径,但是好像并没什么用,都是在系统相册中选择
}
// 从相册中选择多张图片 
function galleryImgs(){
    // 从相册中选择图片
    console.log("从相册中选择多张图片:");
    plus.gallery.pick( function(e){
        for(var i in e.files){
            console.log(e.files[i]);
        }
    }, function ( e ) {
        console.log( "取消选择图片" );
    },{filter:"image",multiple:true});//过滤器只要图片,多选
}
在uni-app中使用`plus.zip.compressVideo`方法压缩视频需要使用HBuilderX进行开发,并在真机环境下运行。 以下是一个示例代码,演示如何在uni-app中使用`plus.zip.compressVideo`方法压缩视频: ```vue <template> <view> <button @click="compressVideo">压缩视频</button> </view> </template> <script> export default { methods: { compressVideo() { const self = this; plus.gallery.pick(function (e) { plus.zip.compressVideo({ src: e, dst: '_doc/compressed.mp4', quality: 0.5, overwrite: true }, function (event) { console.log('视频压缩成功'); console.log('压缩后的视频路径:' + event.target); self.getCompressedVideoSize(event.target); }, function (error) { console.log('视频压缩失败:' + error.message); }); }, function (error) { console.log('选择视频失败:' + error.message); }, { filter: 'video', multiple: false }); }, getCompressedVideoSize(path) { plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function (fs) { fs.root.getFile(path, { create: false }, function (fileEntry) { fileEntry.getMetadata(function (metadata) { // 获取压缩后的视频文件大小 const size = metadata.size; console.log('压缩后的视频文件大小:' + size + ' bytes'); }, function (error) { console.log('获取压缩后的视频文件大小失败:' + error.message); }); }, function (error) { console.log('获取压缩后的视频文件失败:' + error.message); }); }, function (error) { console.log('请求文件系统失败:' + error.message); }); } } } </script> ``` 在这个示例中,我们通过点击按钮调用`compressVideo`方法来选择视频并进行压缩。在视频压缩成功后,我们通过`plus.io.requestFileSystem`来获取压缩后的视频文件大小。 需要注意的是,使用`plus.zip.compressVideo`方法进行视频压缩需要在真机环境下运行,无法在模拟器中测试。 希望这个示例对你有帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值