- 47
- 0
问题描述
在微信小程序中,我想实现点击按钮播放或暂停音乐,我是用wx.createInnerAudioContext()获取InnerAudioContext 实例,然后将InnerAudioContext 保存至data中,通过src属性控制播放的音乐,理论上我调用了play()方法之后,InnerAudioContext.paused就应该为false,但是并没有,我只有通过调用InnerAudioContext.onPlay()方法去监听音频的播放事件之后,InnerAudioContext.paused才为false,暂停音乐也是一样,必须去监听对应事件才会改变paused的状态,我想问为什么要在监听事件之后才改变状态呢?或者说还有其他方法可以立即改变paused的状态吗?求大神解惑,下面附上代码
相关代码
play(order) {
if (this.data.playingSong) {
// 暂停或播放歌曲
if (this.data.playingSong.paused) {
this.setData({
playerControlIcon: '../../assets/icon/play.jpg'
})
this.data.playingSong.play();
} else {
this.setData({
playerControlIcon: '../../assets/pause.jpg'
})
this.data.playingSong.pause();
// 监听暂停事件
this.data.playingSong.offPause();
this.data.playingSong.onPause(() => {
console.log('this.data.playingSong.paused', this.data.playingSong.paused)
})
}
} else {
// 播放指定歌曲
this.setData({
playerControlIcon: '../../assets/icon/play.jpg'
})
let audioContext = wx.createInnerAudioContext();
audioContext.src = cdnUrl + 'Dream It Possible.mp3';
audioContext.play();
// 监听播放事件
audioContext.offPlay();
audioContext.onPlay( () => {
console.log('audioContext.paused', audioContext.paused)
this.setData({
playingSong: audioContext
})
})
}
}, - 共 0 条
- 全部回答
-
结尾的故事 普通会员 1楼
在微信小程序中,可以使用wx.createInnerAudioContext()方法来创建一个内部的音频上下文实例。这个实例可以用于播放音频文件。
以下是一个示例:
javascript Page({ data: { innerAudioContext: null }, onLoad: function () { var innerAudioContext = wx.createInnerAudioContext(); // 使用innerAudioContext来播放音频 var audio = new Audio('audio.mp3'); audio.play(); } });在这个示例中,我们首先创建了一个内部的音频上下文实例,然后使用这个实例来播放音频文件。
注意,wx.createInnerAudioContext()方法默认创建了一个内部的Web Audio API实例,但是这个实例并不用于播放音频文件。如果需要播放音频文件,需要使用wx.createMediaElementSource()方法。
此外,由于微信小程序的安全限制,对于音频文件的大小,其最大限制是1024KB。如果音频文件过大,可能会导致加载失败或内存溢出。因此,在使用wx.createInnerAudioContext()方法创建音频上下文实例时,需要确保音频文件的大小在微信小程序的安全限制范围内。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
