1***@qq.com
1***@qq.com
  • 发布:2024-07-18 11:40
  • 更新:2024-08-05 13:05
  • 阅读:202

【报Bug】uni.createInnerAudioContext()在安卓手机上不能播放音频

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.23

手机系统: Android

手机系统版本号: Android 11

手机厂商: 华为

手机机型: mate 60 pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://ext.dcloud.net.cn/plugin?id=480

示例代码:

audioPlay() {
this.innerAudioContext && this.innerAudioContext.play();
},
audioPause() {
this.innerAudioContext && this.innerAudioContext.pause();
},
audioOnPlay() {
this.videoIsPlay = true;
this.$emit('update:play', true);
},
audioOnPause() {
this.videoIsPlay = false;
this.$emit('update:play', false);
},
audioDestroy() {
this.innerAudioContext && this.innerAudioContext.destroy && this.innerAudioContext.destroy();
this.audioPropInit();
},
audioControls() {
if (this.videoIsPlay) {
this.audioPause();
} else {
this.audioPlay();
}
},
handleBtnClick() {
this.audioControls();
this.$emit('update:play', this.videoIsPlay);
},
contextInit() {
if (this.innerAudioContext) {
this.audioDestroy()
}
let that = this;
if (!that.src) {
if (process.env.NODE_ENV !== 'production') {
console.warn([luch-audio warn]: 'src' 为空);
}
return;
}
let innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = that.autoplay;
innerAudioContext.loop = that.loop;
if (typeof that.obeyMuteSwitch === 'boolean') {
innerAudioContext.obeyMuteSwitch = that.obeyMuteSwitch;
}
innerAudioContext.onPlay((...arg) => {
console.log('开始播放',e);
that.audioOnPlay();
});

        innerAudioContext.onError((e) => {  
              console.log('播放出错',e);  
        });  
        innerAudioContext.src = that.src;  
        if (that.initAudio) {  
            that.initAudio(innerAudioContext, { src: that.src, index: that.index });  
        }  
        this.innerAudioContext = innerAudioContext;

操作步骤:

1、使用luch-audio插件,运行在h5环境或者内置浏览器,都可以正常播放
2、当运行到安卓app基座或者打包成apk安装,就不能播放了,报错{"errMsg": "MediaError", "errCode": -99}
3、ios没有测试过

预期结果:

能在app环境正确播放音频

实际结果:

不能播放

bug描述:

uni.createInnerAudioContext() 在app环境下播放报错 {"errMsg":"MediaError","errCode":-99},在h5环境或者内置浏览器里面播放就是正常的

2024-07-18 11:40 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

使用插件,去插件市场·@插件作者 来进行提问

9***@qq.com

9***@qq.com

我和你的问题一样,也是再安卓机,无法播放远程音频,录音的话,是可以播放的;

9***@qq.com

9***@qq.com

你解决了吗?

  • 1***@qq.com (作者)

    可以把远程音频下载到临时文件夹下面,uni.downloadFile这个,然后audio地址填临时文件路径就可以了

    2024-08-06 09:23

要回复问题请先登录注册