1. 问题抛出
原本的代码,在methods中新增playVolumeExe()方法,想通过点击实现播放音频效果的,开发完在H5调试没有任何问题;但是运行到小程序后 music.src = this.currentAudioUrl;这行代码始终不生效,music.src无论怎么设置都为空字符串( this.currentAudioUrl是有值的)。代码如下:
methods: {
playVolumeExe(){
music = uni.createInnerAudioContext();
music.src = this.currentAudioUrl
if(music.src != null && music.src != "" && music.src.endsWith(".mp3")){
music.play(); //执行播放
music.onEnded(() => {//播放结束
music.src = null;
});
}else{
this.showToast("播放失败", "default");
}
}
}
2.问题解决
解决思路,在事件中(如 onShow())获取 uni.createInnerAudioContext(),再在方法中设置src的值。
代码如下:
data() {
return {
music: null,
};
},
onShow() {
this.music = uni.createInnerAudioContext();
},
methods: {
playVolumeExe(){
this.music.src = this.currentAudioUrl
if(this.music.src != null && this.music.src != "" && this.music.src.endsWith(".mp3")){
this.music.play(); //执行播放
this.music.onEnded(() => {//播放结束
this.music.src = null;
});
}else{
this.showToast("播放失败", "default");
}
}
}