更新记录
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