更新记录

1.0.0(2026-04-22)

初始版本,支持 Android / iOS,视频提取音频


平台兼容性

uni-app(4.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - 5.0 13 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(5.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 13 - -

其他

多语言 暗黑模式 宽屏模式

dh-video-to-audio

App 端视频提取音频插件,支持 Android / iOS,基于系统原生能力实现,无需依赖第三方库。

功能特性

  • M4A 格式:直接提取视频内的音频轨道,速度极快,体积小
  • WAV 格式:解码为 PCM 16-bit 无损音频,兼容性最佳,可直接用于语音识别、音频分析等场景
  • 在线视频:支持传入 http:// / https:// 在线视频链接,自动下载后提取
  • 自动路径:不指定输出路径时,自动生成至 App 缓存目录
  • 双端支持:Android 5.0+,iOS 13.0+

使用说明

引入插件

// #ifdef APP
import { videoToAudio } from '@/uni_modules/dh-video-to-audio';
// #endif

提取音频

// #ifdef APP
videoToAudio({
  videoPath: '/var/mobile/.../video.mp4', // 本地视频绝对路径
  format: 'm4a', // 推荐:直接提取音频轨道,速度快,体积小;'wav' 为无损格式,兼容性更佳
  success(res) {
    console.log('输出路径:', res.outputPath); // file:///...
    console.log('时长:', res.duration, 'ms');
    console.log('大小:', res.fileSize, '字节');
  },
  fail(err) {
    console.error(err.errCode, err.errMsg);
  },
});
// #endif

在线视频

// #ifdef APP
videoToAudio({
  videoPath: 'https://example.com/video.mp4',
  format: 'm4a',
  success(res) {
    console.log('输出路径:', res.outputPath);
  },
  fail(err) {
    console.error(err.errCode, err.errMsg);
  },
});
// #endif

指定输出路径

// #ifdef APP
videoToAudio({
  videoPath: '/var/mobile/.../video.mp4',
  format: 'm4a',
  outputPath: '/var/mobile/.../output.m4a', // 自定义输出路径
  success(res) {
    console.log(res.outputPath);
  },
});
// #endif

API

videoToAudio(options)

参数 类型 必填 说明
videoPath string 视频路径,支持本地绝对路径、file:// 路径、http(s):// 在线链接
format string 输出格式:'m4a'(默认)或 'wav'
outputPath string 自定义输出路径,不传则自动生成至缓存目录
success function 成功回调
fail function 失败回调
complete function 完成回调(成功或失败均触发)

success 回调参数

字段 类型 说明
outputPath string 输出音频路径(file:// 协议)
duration number 音频时长(毫秒)
fileSize number 文件大小(字节)

错误码

错误码 说明
8050001 视频文件不存在或路径无效
8050002 视频不包含音频轨道
8050003 转换失败
8050004 参数无效,videoPath 不能为空
8050005 输出目录创建失败
8050006 网络视频访问失败(下载失败或网络异常)

注意事项

路径格式

插件接受绝对路径file:// 协议路径。

如果你使用的是 _doc/_downloads/ 等 5+ App 虚拟路径,需要先转换为绝对路径:

// 5+ App 虚拟路径转绝对路径
const absolutePath = plus.io.convertLocalFileSystemURL('_doc/video/test.mp4')

// #ifdef APP
videoToAudio({
  videoPath: absolutePath,
  success(res) { ... },
})
// #endif

其他注意事项

  • 如果视频本身不含音频轨道(如纯静音录屏),会返回错误码 8050002
  • WAV 格式文件体积约为 M4A 的 5~10 倍,超长音频请注意存储空间
  • 在线视频会先完整下载再提取,请确保网络可用且视频文件不过大
  • 转换操作在后台线程执行,不会阻塞页面交互

更新日志

1.2.0

  • 新增在线视频支持(http:// / https://
  • 新增错误码 8050006:网络视频访问失败

1.1.0

  • 新增 format 参数,支持 'wav' 输出(PCM 16-bit 无损)

1.0.0

  • 初始版本,支持 Android / iOS,输出 M4A

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。