h5页面添加背景音乐

【需求】h5页面添加背景音乐,支持微信、QQ、各种APP。

【实现思路】1、通过audio标签,设置自动播放,是一种方法,但是此方法只适合微信、QQ,并不兼容我司的APP,需要主动触发下播放事件。

      2、针对可以自动播放的渠道,通过this.audio.addEventListene监听playing事件,控制小喇叭的状态。

【知识点】audio标签、addEventListener、classList

【代码】封装了一个公共组件:

 1 <template>
 2     <div class="music">
 3         <audio src={{musicsrc}} id="Jaudio" class="media-audio"  preload loop="loop" hidden="false"></audio>
 4         <div class="icon"></div>
 5     </div>
 6 </template>
 7 <script>
 8 /* eslint-disable */
 9     export default{
10         data() {
11             return {}
12         },
13         props: {
14             musicsrc: {}
15         },
16         methods: {
17              // 音乐背景
18             play() {
19                 this.audio.play()
20                 this.icon.classList.add(‘play‘);
21                 this.icon.classList.remove(‘stop‘);
22             },
23             stop() {
24                 this.audio.pause()
25                 this.icon.classList.add(‘stop‘);
26                 this.icon.classList.remove(‘play‘);
27             },
28             audioAutoPlay() {
29                 this.audio.play();
30                 var that=this;
31                 //控制小喇叭的播放状态
32                 this.audio.addEventListener("playing", function(){
33                     that.icon.classList.add(‘play‘);
34                     that.icon.classList.remove(‘stop‘);
35                 });
36                 this.audio.addEventListener("pause", function(){
37                     that.icon.classList.add(‘stop‘);
38                     that.icon.classList.remove(‘play‘);
39                 });
40                 document.addEventListener("WeixinJSBridgeReady", function () {
41                     that.audio.play();
42                     this.icon.classList.add(‘play‘);
43                     this.icon.classList.remove(‘stop‘);
44                 }, false);
45                 this.icon.addEventListener("click", () => {
46                     if (this.audio.paused) {
47                         this.play()
48                     } else {
49                         this.stop()
50                     }
51                 }, false);
52                 // 触发播放音乐效果,解决浏览器或者APP自动播放问题
53                 document.addEventListener("touchstart", () => {
54                     if(!this.isPlay) {
55                         this.play();
56                         this.isPlay = true;
57                     }
58                 }, false)
59             },
60
61         },
62         ready() {
63             this.audio = window.document.querySelector(‘.media-audio‘);
64             this.icon = window.document.querySelector(‘.icon‘);
65             this.audioAutoPlay();
66         }
67     }
68 </script>
69 <style  rel="stylesheet/scss" lang="scss">
70     .music {
71     position:fixed;
72     z-index:1000;
73     top:50px;
74     right:20px;
75
76     .icon{
77         width:60px;
78         height:50px;
79         background:url(‘https://pic.51zhangdan.com/u51/storage/dd/df9e5296-1fa9-f3c4-6151-afeab9c2f34d.png‘) no-repeat;
80         background-size: 100%;
81         &.play{
82             animation: 4s linear 0s normal none infinite rotate;
83             // animation-fill-mode:forwards;
84             // animation-play-state: running;
85         }
86         &.stop{
87             // animation: 4s linear 0s normal none infinite rotate;
88             // animation-fill-mode:forwards;
89             // animation-play-state: paused;
90         }
91     }
92 }
93
94 @keyframes rotate{
95     from{transform:rotate(0deg)}
96     to{transform:rotate(360deg)}
97 }
98 </style>

组件调用:

 1 <template>
 2     <bgmusic :musicsrc=‘musicbg‘></bgmusic>
 3 </template>
 4 <script>
 5  import bgmusic from ‘../../components/music/bgmusic.vue‘
 6
 7  export default {
 8         data() {
 9             return {
10                 musicbg: "../../assets/music/musicbg.mp3",
11             }
12         }
13 }
14
15 </script>
时间: 2024-11-05 15:55:49

h5页面添加背景音乐的相关文章

php页面添加背景音乐 控制停止/播放

php页面添加背景音乐 控制停止/播放 <!DOCTYPE html> <html> <head lang="zh-cn"> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-sca

页面添加背景音乐以及注意事项

我们经常会在一些微信分享页面中看到页面的右上角,会有一个背景音乐的按钮.我们来看看,怎么来实现这样一个效果. 因为智能手机浏览器中多数都是webkit内核的,绝大部分的智能手机浏览器都是支持HTML5的:对于IOS和Android原生应用中的WebView控件也都是webkit内核且支持HTML5标准的.因此我们在添加背景音乐的时候,可以使用一个很方便的标签:<audio> 在移动平台使用<audio>的时候,多数情况是不需要你处理UI的,因为移动浏览器不会像web端一样添加一个默

H5页面添加倒计时,然后自动跳转

下面给出一个倒计时页面的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8&quo

H5页面背景音乐,C33自转效果(原创)

我们经常在访问H5页面(比如电子贺卡.动态音乐相册等)的时候,会看到右上角有个自转的音乐图标,点击可以控制音乐是否播放,那这个效果是如何实现的呢?  Demo HTML代码如下: 1 <div id="audio_btn" class="rotate"> 2 <audio loop src="bg_audio.mp3" id="media" autoplay="" preload=&quo

H5页面背景音乐,C33 360&#176;旋转效果

在做H5页面的时候,经常会需要用到背景音乐,比如电子贺卡.动态音乐相册等,右上角有个360°旋转的音乐图标,点击可以控制音乐是否播放,那这个效果是如何实现的呢? 我现整理了一下代码:  Demo 点击Icon暂停,再次点击继续. HTML代码如下: 1 <div id="audio_btn" class="rotate"> 2 <audio loop src="bg_audio.mp3" id="media"

自定义H5页面规范

查看详情页也可支持自定义H5页面,用来展示更多内容. 交互规范 分屏切换,支持横向和竖向,滑动指引需清晰 若详情页加载较慢,需设计loading页,给予用户友好的提示 如有视频,需在底部加上“建议在Wi-Fi环境下播放”提示 建议一个页面不超过两种以上交互操作 设计规范 页面尺寸建议:640像素×1100像素 最小按钮宽度:160像素 最小按钮高度:60像素 页面最小字号:不小于24像素 二维码最小尺寸:200像素×200像素 ,边距至少为10像素 背景音乐规范:必须支持音乐可循环及可关闭,并采

【干货】微信场景之H5页面制作免费工具大集合

营销代有手段出,各领风骚数百天.要说现在哪些营销方式最能传播,屡屡刷爆朋友圈的H5页面肯定就是首当其冲的,提到H5页面,就立马想到"围住神经猫",上线微信朋友圈3天的时间便创造了用户500万,访问量超1亿的神话. H5如此势头,不得不让营销人对H5页面的未来充满了期待,越来越多的人开始在营销中运用H5页面.其实在移动端各个领域,H5页面的叫法很多,也会称为翻翻看.手机微杂志.广告页.场景应用.海报\画报(动态海报.指尖海报.掌中海报.动画海报.微画报.微海报)等等,经常能见到的就是滑动

手机版制作H5页面免费工具大集合

搜狐快站 搜狐快站是搜狐推出的免费一站式移动建站云平台,不久前他们也进军了H5页面制作的领域.拖拽式操作,简单易上手:有辅助线,支持图片微调:背景图片有滤镜功能,同一组件支持多重动画,自主程度高.另外还支持表单.电话.视频.自动播放.JS插件等功能.最重要的是,上述功能全部免费,完全无需担心制作成本. 初页 初页作为手机端制作动态海报的APP,门槛还是比较低的,容易上手,可以直接在手机上编辑,制作极为便利,图文混排的模板也很丰富.可免费下载安卓版和苹果版初页App,或通过电脑在线创建.编辑,轻松

ios嵌套H5页面,出现的小bug;

ios嵌套H5页面,点击数字时就会弹出打电话的功能:解决方法: 在head标签中添加: <meta name="format-detection" content="telephone=no"> ios嵌套H5页面,只要碰到页面,就会使input获取焦点,调取ios键盘,解决方法:在页面上添加js如下: $("body")[0].addEventListener("touchstart",function(){ d