最近遇到了这样一个需求,就是h5不同页面之间跳转,要求bgm连续播放不间断。 不知道大家是怎么处理的呢?
我之前想的是,在每个页面都写一个audio标签,然后切换页面的时候存一下当前音乐的播放进度,到下一个页面再给音乐写入开始时间。

<template><audio loop="loop" preload="preload" id="bgmusic" controls="controls" ref="MusicPlay" style="display: none;"><source src="xxx.mp3" type="audio/mpeg"></audio><span @click="goIndex"></span>
</template><script>
mounted(){this.soundBgm = document.getElementById("bgmusic");//判断本地是否有存储过音频播放时间if(sessionStorage.bgmstart == 'true'){this.current = 'musicplay';if (sessionStorage.bgmTime == null) {//若没有时,从头自动播放this.soundBgm.currentTime = 0;this.soundBgm.play();} else {//若有存储的则,取出本地存储的音频播放的暂停时间var curTime = window.sessionStorage.getItem("bgmTime");sessionStorage.setItem('bgmPlay', this.soundBgm.bgmPlay);//从暂停时间开始接着播放this.soundBgm.currentTime += curTime;this.soundBgm.play();}}},methods:{//页面跳转时将本页面音频最后截至时间存储下来fun() {this.soundBgm.pause();sessionStorage.setItem('bgmPlay', this.soundBgm.bgmPlay);sessionStorage.setItem('bgmTime', this.soundBgm.bgmPlay ? this.soundBgm.currentTime + this.soundBgm.context.currentTime - this.soundBgm.startTime : this.soundBgm.currentTime);},// 跳转goIndex() {this.fun();this.$router.push({path: `/xxx`,});}}</script>

但是这样第一是不同页面切换的时候,音乐有很明显的卡顿。第二就是iOS设置currentTime没反应,不知道为什么一直是0。有木有大佬可以讲一下这样为什么iOS不能适配啊(其实大家也能看出来 我这里写的非常混乱,原生夹杂vue…真的是很晕了)

后来请教了一个大佬指点了一下 ,正确的操作应该是 在app.vue里设置全局audio

<template><div id="app"><router-view /><audioloop="loop"preload="preload"id="bgmusic"controls="controls"ref="MusicPlay"style="display: none;"><sourcesrc="xxx.mp3"type="audio/mpeg"/></audio></div>
</template>

其他页面直接用this.$parent去调用然后播放

this.$parent.$refs.MusicPlay.play();
this.$parent.$refs.MusicPlay.pause();

按照逻辑功能的不同,在合适的位置写入即可

vue不同页面切换,背景音乐连续播放不间断相关推荐

  1. 白鹭引擎解决微信小游戏切换背景音乐无法播放的问题。

    白鹭引擎 版本:5.2.8 描述:白鹭引擎解决微信小游戏切换背景音乐无法播放的问题. main.ts文件中找到如下函数,增加上您的音频对象. egret.lifecycle.onResume = () ...

  2. html音乐自动播放暂停js,JS实现html页面切换背景音乐不间断网页跳转背景音乐不停止播放...

    我们做项目的时候可能会用到需要在整个网站中添加背景音乐. 但如果仅在页面中添加BGSOUND标签来播放音乐的话,当页面切换时,背景音乐就会重新加载,而达不到连贯播放的效果. 为了解决这个问题,我们最常 ...

  3. ios微信下vue项目组件切换并自动播放音频的解决方案

    最近在做一个英语答题项目 , 项目需求是通过答题取的成绩 , 答题的题型是分为 , 听音选图 , 看图选词 , 和填空题 . 项目总共分为了3个页面 , 开始页 ,答题页 和结束页面 ,答题页关于每种 ...

  4. html将div标签添加背景音乐,html页面加上背景音乐自动播放

    0.基本配置 图片 music.gif music_no.png music_off.png 1.css内容 #audio_btn { position: fixed; right: 8px; top ...

  5. 音乐在html中连续播放,怎么让PPT中背景音乐在多个页面中连续播放

    使用PPT幻灯片,有时我们给幻灯片添加了背景音乐,使PPT的效果更好,更能渲染会场的气氛.以下是学习啦小编为您带来的关于PPT中背景音乐在多个页面中连续播放,希望对您有所帮助. PPT中背景音乐在多个 ...

  6. HTML5中多页面实现背景音乐的连续播放

    在单个页面中插入背景音乐,当跳转到其他页面时,背景音乐就没了,此时若在其他页面添加相同的audio控件,那么跳转后音乐会重新播放:因此想办法让他能够在跳转后能够继续播放此音乐: 新建一个music.h ...

  7. 前端页面 h5使用vue搭建带播放列表切换的音频播放器 audio

    一个h5的音频播放器,播放列表与播放器上下首切换 样式效果对应起来. 五秒后自动收缩形成挂件(不可移动).点击播放器图片 即可展开.收起. audio.js    audio.css  资源下载 详细 ...

  8. html 音乐能连续播放吗,音乐在不同HTML页面的连续播放问题

    原则上不同的页面,资源重新加载,音乐的播放会被重置. 要实现音乐的连续播放,可以尝试使用如下的一些方法: 1. 主页面使用frame, 实际上是隐藏了music.html,只显示index.html, ...

  9. 音乐在不同HTML页面的连续播放问题

    原则上不同的页面,资源重新加载,音乐的播放会被重置. 要实现音乐的连续播放,可以尝试使用如下的一些方法: 1. 主页面使用frame, <html> <frameset cols=& ...

最新文章

  1. 数字图像处理:(4)二阶微分在数字图像处理中的应用
  2. 上海Oracle高峰会感悟
  3. 【转】在.Net中关于AOP的实现
  4. ansys命令流_ANSYS命令流建模3之划分单元+施加弹簧
  5. new 结构体指针_Go:我应该用指针替代结构体的副本吗?
  6. Linux系统编程16:进程控制之进程终止以及终止进程的三种情况
  7. Linux系统原理(工作模式)
  8. CImage实现双缓冲最近邻插值
  9. html 中的name,id ,value,class,list 作用与区别
  10. Alonzo Church的λ演算(摘自彭罗斯《皇帝新脑》)
  11. 微软新一代系统镜像 Windows 11 系统 ISO 镜像下载 - BT 磁力 / 网盘地址
  12. Sublime Text 3.0汉化教程
  13. 知客CRM成功客户专访----厦门英斯捷
  14. Web报表系统葡萄城报表:报表设计
  15. APP中方法超过64K的解决办法
  16. gird布局之容器属性justify-items与align-items
  17. MySQL、Redis、MongoDB安装
  18. Justified Jungle
  19. APP瘦身大法--AndResGuard的使用
  20. 面对ICO乱象,这里有一份老猫的4000字投资指南

热门文章

  1. 前端DES加密、base64编码,后端DES解密、base64解码
  2. Ubuntu中解压出现:bzip2: (stdin) is not a bzip2 file.
  3. android debug SIGABRT (signal SIGABRT)
  4. 【小程序云开发转uniCloud阿里云】
  5. 苹果手机软件闪退怎么解决_LOL手游卡顿闪退怎么办-卡顿闪退解决方法解析
  6. C语言标准ANSI C、C语言的特点、C语言的关键字(32个)
  7. Eclipse打印Java的char默认值,出现方框原因
  8. 一套靠谱的外贸型服装鞋业系统长啥样?
  9. PIC16F877A单片机 (中断与定时器Timer1)
  10. hach vue 跳转_Vue路由实现、路由导航、路由模式