微信小程序-背景音频
微信小程序多音频场景处理 - 背景音频
提到音频播放控制,不得不提背景音频这个方法wx.getBackgroundAudioManager
很不幸,这个有坑。当使用场景为单音频播放或者不需要记录每个音频播放的位置时,使用它是一个合适的选择。当需要记录每个音频的播放位置时,这个就会有些问题了。问题来源backgroundAudioManager.seek
这个API。
重要的事情说3遍:backgroundAudioManager.seek在模拟器上正常,但是在真机上不生效,每次都会重新播
重要的事情说3遍:backgroundAudioManager.seek在模拟器上正常,但是在真机上不生效,每次都会重新播
重要的事情说3遍:backgroundAudioManager.seek在模拟器上正常,但是在真机上不生效,每次都会重新播
Component({
data: {
play: false,
list: [
{ id: 1, url: '' },
{ id: 2, url: '' },
{ id: 3, url: '' },
],
duration: {},
id: null,
},
onLoad() {},
onShow() {},
onHide() {},
onUnload() { },
play() {
wx.nextTick(() => {
const { duration = {} } = this.data;
const currentTime = duration[id] || 0;
backgroundAudioManager.title = '每日快讯';
backgroundAudioManager.epname = '';
backgroundAudioManager.singer = '';
backgroundAudioManager.coverImgUrl = '';
backgroundAudioManager.src = url;
if (currentTime) {
// 跳转到指定的进度
backgroundAudioManager.seek(currentTime);
backgroundAudioManager.play();
}
});
},
handleAudioPlay(e) {
const { play, url, id } = e.detail;
const backgroundAudioManager = wx.getBackgroundAudioManager();
if (play) {
backgroundAudioManager.pause();
// 记录当前音频播放的进度
wx.getBackgroundAudioPlayerState({
success(res) {
const { currentPosition } = res;
that.setData({
duration: {
...duration,
[id]: currentPosition,
},
});
},
});
// 点击的不是当前播放的音频
if (this.data.id !== id) {
this.play()
}
} else {
this.play()
}
this.setData({
play: !play,
id,
}),
},
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具