uni-app录音得到临时文件不能播放【已解决,可以播放】
uni-app录音得到临时文件不能播放【已解决,可以播放】
项目信息 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | 10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.14 |
手机系统 | Android |
手机系统版本号 | Android 9.0 |
手机厂商 | 小米 |
手机机型 | 小米6 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- 录制
- 播放
预期结果:
播放
实际结果:
不能播放
bug描述:
录音完后recorderManager.onStop 返回的地址
"tempFilePath": "_doc/uniapp_temp_1716741799704/recorder/1716741811940.mp3",
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = this.voicePath; //播放的地址(上面录的本地地址)
innerAudioContext.play(); //播放
更多关于uni-app录音得到临时文件不能播放【已解决,可以播放】的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app录音得到临时文件不能播放【已解决,可以播放】的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中进行录音操作时,可能会遇到录音得到的临时文件无法播放的问题。以下是一些可能的原因和解决方案,帮助你确保录音文件能够正常播放:
1. 文件路径问题
- uni-app 录音成功后,会返回一个临时文件路径。确保你使用的是正确的文件路径来播放录音。
- 如果路径不正确,播放器将无法找到文件。
uni.startRecord({
success: function (res) {
var tempFilePath = res.tempFilePath;
console.log('录音文件临时路径:', tempFilePath);
// 确保使用这个路径来播放
uni.playVoice({
filePath: tempFilePath,
success: function () {
console.log('录音播放成功');
},
fail: function (err) {
console.error('录音播放失败:', err);
}
});
},
fail: function (err) {
console.error('录音失败:', err);
}
});
2. 文件格式问题
- 确保录音文件的格式是播放器支持的格式。uni-app 默认支持
.mp3
和.wav
格式的音频文件。 - 如果录音格式不兼容,可能会导致无法播放。
3. 播放器问题
- 确保你使用的是正确的播放器 API,如
uni.playVoice
或uni.createInnerAudioContext
。 uni.playVoice
主要用于播放短音频,而uni.createInnerAudioContext
更适合播放较长的音频文件。
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = tempFilePath;
innerAudioContext.play();
4. 权限问题
- 确保应用已经获取了录音和文件读写的权限。如果权限不足,可能会导致录音文件无法正常保存或播放。
5. 文件未完全写入
- 在录音结束后,文件可能还没有完全写入到磁盘。可以稍微延迟一下播放操作,确保文件已经完全写入。
uni.startRecord({
success: function (res) {
var tempFilePath = res.tempFilePath;
setTimeout(function () {
uni.playVoice({
filePath: tempFilePath,
success: function () {
console.log('录音播放成功');
},
fail: function (err) {
console.error('录音播放失败:', err);
}
});
}, 500); // 延迟500毫秒再播放
},
fail: function (err) {
console.error('录音失败:', err);
}
});