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.playVoiceuni.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);
    }
});
回到顶部