vue不同页面切换,背景音乐连续播放不间断
最近遇到了这样一个需求,就是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不同页面切换,背景音乐连续播放不间断相关推荐
- 白鹭引擎解决微信小游戏切换背景音乐无法播放的问题。
白鹭引擎 版本:5.2.8 描述:白鹭引擎解决微信小游戏切换背景音乐无法播放的问题. main.ts文件中找到如下函数,增加上您的音频对象. egret.lifecycle.onResume = () ...
- html音乐自动播放暂停js,JS实现html页面切换背景音乐不间断网页跳转背景音乐不停止播放...
我们做项目的时候可能会用到需要在整个网站中添加背景音乐. 但如果仅在页面中添加BGSOUND标签来播放音乐的话,当页面切换时,背景音乐就会重新加载,而达不到连贯播放的效果. 为了解决这个问题,我们最常 ...
- ios微信下vue项目组件切换并自动播放音频的解决方案
最近在做一个英语答题项目 , 项目需求是通过答题取的成绩 , 答题的题型是分为 , 听音选图 , 看图选词 , 和填空题 . 项目总共分为了3个页面 , 开始页 ,答题页 和结束页面 ,答题页关于每种 ...
- html将div标签添加背景音乐,html页面加上背景音乐自动播放
0.基本配置 图片 music.gif music_no.png music_off.png 1.css内容 #audio_btn { position: fixed; right: 8px; top ...
- 音乐在html中连续播放,怎么让PPT中背景音乐在多个页面中连续播放
使用PPT幻灯片,有时我们给幻灯片添加了背景音乐,使PPT的效果更好,更能渲染会场的气氛.以下是学习啦小编为您带来的关于PPT中背景音乐在多个页面中连续播放,希望对您有所帮助. PPT中背景音乐在多个 ...
- HTML5中多页面实现背景音乐的连续播放
在单个页面中插入背景音乐,当跳转到其他页面时,背景音乐就没了,此时若在其他页面添加相同的audio控件,那么跳转后音乐会重新播放:因此想办法让他能够在跳转后能够继续播放此音乐: 新建一个music.h ...
- 前端页面 h5使用vue搭建带播放列表切换的音频播放器 audio
一个h5的音频播放器,播放列表与播放器上下首切换 样式效果对应起来. 五秒后自动收缩形成挂件(不可移动).点击播放器图片 即可展开.收起. audio.js audio.css 资源下载 详细 ...
- html 音乐能连续播放吗,音乐在不同HTML页面的连续播放问题
原则上不同的页面,资源重新加载,音乐的播放会被重置. 要实现音乐的连续播放,可以尝试使用如下的一些方法: 1. 主页面使用frame, 实际上是隐藏了music.html,只显示index.html, ...
- 音乐在不同HTML页面的连续播放问题
原则上不同的页面,资源重新加载,音乐的播放会被重置. 要实现音乐的连续播放,可以尝试使用如下的一些方法: 1. 主页面使用frame, <html> <frameset cols=& ...
最新文章
- 数字图像处理:(4)二阶微分在数字图像处理中的应用
- 上海Oracle高峰会感悟
- 【转】在.Net中关于AOP的实现
- ansys命令流_ANSYS命令流建模3之划分单元+施加弹簧
- new 结构体指针_Go:我应该用指针替代结构体的副本吗?
- Linux系统编程16:进程控制之进程终止以及终止进程的三种情况
- Linux系统原理(工作模式)
- CImage实现双缓冲最近邻插值
- html 中的name,id ,value,class,list 作用与区别
- Alonzo Church的λ演算(摘自彭罗斯《皇帝新脑》)
- 微软新一代系统镜像 Windows 11 系统 ISO 镜像下载 - BT 磁力 / 网盘地址
- Sublime Text 3.0汉化教程
- 知客CRM成功客户专访----厦门英斯捷
- Web报表系统葡萄城报表:报表设计
- APP中方法超过64K的解决办法
- gird布局之容器属性justify-items与align-items
- MySQL、Redis、MongoDB安装
- Justified Jungle
- APP瘦身大法--AndResGuard的使用
- 面对ICO乱象,这里有一份老猫的4000字投资指南
热门文章
- 前端DES加密、base64编码,后端DES解密、base64解码
- Ubuntu中解压出现:bzip2: (stdin) is not a bzip2 file.
- android debug SIGABRT (signal SIGABRT)
- 【小程序云开发转uniCloud阿里云】
- 苹果手机软件闪退怎么解决_LOL手游卡顿闪退怎么办-卡顿闪退解决方法解析
- C语言标准ANSI C、C语言的特点、C语言的关键字(32个)
- Eclipse打印Java的char默认值,出现方框原因
- 一套靠谱的外贸型服装鞋业系统长啥样?
- PIC16F877A单片机 (中断与定时器Timer1)
- hach vue 跳转_Vue路由实现、路由导航、路由模式