HarmonyOS 鸿蒙Next 视频转base64字符串

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 视频转base64字符串

相机拍视频后,怎么通过uri地址,把视频转换为base64字符串

2 回复
可以参考以下方式:
async abtainBase64(url:string){
    let fd: number = fileIo.openSync(url, 0o0).fd;
    const file = fs.openSync(url, fs.OpenMode.READ_ONLY);
    let videoSize = fs.statSync(file.fd).size;
    let buffer = new ArrayBuffer(videoSize);
    fs.readSync(file.fd, buffer);
    let helper = new util.Base64Helper();
    let buf: Uint8Array = new Uint8Array(buffer);
    let base64 = '视频格式' + helper.encodeToStringSync(buf, util.Type.MIME);
    console.log("视频格式=====================",base64)
    fs.closeSync(file);
  }
 

使用videoCompressor压缩,相关参考代码https://gitee.com/openharmony-sig/ohos_videocompressor

在HarmonyOS(鸿蒙)Next系统中,将视频文件转换为Base64字符串是一个相对复杂的任务,因为视频文件通常较大,直接转换为Base64字符串会生成非常长的字符串,这不仅会消耗大量内存,还可能影响应用性能。不过,如果你确实需要将视频转换为Base64字符串,以下是一个基本的实现思路:

  1. 读取视频文件:首先,你需要使用HarmonyOS的文件读取API来读取视频文件的二进制数据。

  2. 转换为Base64:然后,你可以使用Java或Kotlin提供的Base64编码工具类(如java.util.Base64)将读取到的二进制数据转换为Base64字符串。

  3. 处理长字符串:由于视频转换后的Base64字符串可能非常长,你可能需要考虑如何处理这些长字符串,比如分段处理或压缩存储。

  4. 性能优化:考虑到性能和内存使用,建议仅在必要时进行此转换,并考虑在后台线程中执行以避免阻塞主线程。

请注意,这个过程可能会因为视频文件的大小和设备的性能而有所不同。如果在实际开发中遇到具体问题,如内存溢出或性能瓶颈,你可能需要进一步优化代码或寻找其他解决方案。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部