沐子鱼
沐子鱼
  • 发布:2024-05-09 12:10
  • 更新:2024-05-09 18:42
  • 阅读:37

【报Bug】uni.createInnerAudioContext 无法播放 /data/user/0/ 下的音频文件

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 21H2

HBuilderX类型: 正式

HBuilderX版本号: 4.14

手机系统: Android

手机系统版本号: Android 14

手机厂商: 小米

手机机型: 12pro

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

// playSrc.value = e.data;
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true;
innerAudioContext.src = e.data;
innerAudioContext.onPlay(() => {
console.log('开始播放');
});
innerAudioContext.onError((res) => {
console.log(res)
});

操作步骤:

// /data/user/0/com.hxl.kuaiyi/files/play.wav 文件 此为通过aar生成
// playSrc.value = e.data;
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true;
innerAudioContext.src = e.data;
innerAudioContext.onPlay(() => {
console.log('开始播放');
});
innerAudioContext.onError((res) => {
console.log(res)
});

预期结果:

播放正常

实际结果:

返回
{
"errMsg": "MediaError",
"errCode": -5
}
使用audio组件 可以正常播放

bug描述:

uni.createInnerAudioContext
无法播放 /data/user/0/ 下的音频文件

2024-05-09 12:10 负责人:无 分享
已邀请:
沐子鱼

沐子鱼 (作者) - 你好

安卓原生播放的
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(path);
mediaPlayer.prepare();
mediaPlayer.start();
// 如果需要,可以添加一个监听器来处理播放完成后的逻辑
mediaPlayer.setOnCompletionListener(mp -> {
mp.release(); // 释放MediaPlayer资源
// 可以在这里添加其他逻辑,比如删除临时文件等
});
} catch (Exception e) {
e.printStackTrace();
if (mediaPlayer != null) {
mediaPlayer.release(); // 确保即使在异常情况下也释放MediaPlayer资源
}
}

要回复问题请先登录注册