更新记录

1.0.1(2023-08-23)

android修复视频链接获取封面异常问题

1.0.0(2023-07-17)

新版获取视频封面,采用回调的形式。


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:10 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


使用方式

<template>
  <view>
    <button @click="selectLocalFile">本地文件</button>
    <button @click="selectNetFile">网络文件</button>
    <button @click="cleanCache">清除网络文件缓存</button>
    <view class="whitespace-normal break-all">
      fileResult== {{ fileResult }}
    </view>
    <view class="whitespace-normal break-all">
      posterResult=={{ JSON.stringify(posterResult) }}
    </view>

  </view>
</template>

<script>
  const FileSelect = uni.requireNativePlugin("JQ-FileSelect");
  const Poster = uni.requireNativePlugin("JQ-Poster");

  export default {
    data() {
      return {
        fileResult: "",
        posterResult: "",
        url: "https://stream7.iqilu.com/10339/article/202002/18/02319a81c80afed90d9a2b9dc47f85b9.mp4",
      };
    },
    methods: {
      selectLocalFile() {
        //选取本地文件
        FileSelect.selectType("video", (fileResult) => {
          //   /storage/emulated/0/DCIM/Camera/VID_20230708_102358.mp4
          this.fileResult = fileResult;
          Poster.thumbnailImageForVideo(fileResult, (posterResult) => {
            this.posterResult = posterResult;
          });
        });
      },
      selectNetFile() {
        console.log(Poster);
        //网络路径
        Poster.thumbnailImageForVideo(this.url, (posterResult) => {
          console.log(posterResult);
          this.posterResult = posterResult;
        });
      },
        //不是以.mp4 等视频格式结尾的需要先下载再获取第一帧,你拿到封面上传到自己服务器后可以清除掉缓存
        cleanCache(){
            Poster.cleanCache();
        }
    },
  };
</script>

<style lang="scss" scoped></style>
//ios result结构如下
{
    "path":"/var/mobile/Containers/Data/Application/D5B72867-F019-4FF5-865A-87EB8639421C/Documents/poster.png",
    "width":960,
    "height":540
}
//android result结构如下
 {"path":"/storage/emulated/0/Documents/poster.jpg","width":1080,"height":1920}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问