js音乐播放器

241 阅读1分钟

场景

:如果只是前端用的话,估计不需要多讲,我的运用场景是“后台推送语音提示”

我的使用方式

:当接受的WebSocket的时候播放他

 <audio src="https://www.cbdaojia.com//yuyin/语音1 .mp3"   id="music2"></audio>
    <script>
 
      connect();   
 
    // 连接服务端
    function connect() {
       // 创建websocket
       ws = new WebSocket("wss://++++");
       // 当socket连接打开时,输入用户名
    //   ws.onopen = onopen;
       // 当有消息时根据消息类型显示不同信息
       ws.onmessage = onmessage; 
       ws.onclose = function() {
    	  console.log("连接关闭,定时重连");
          connect();
       };
       ws.onerror = function() {
     	  console.log("出现错误");
       };
    }
 

    // 服务端发来消息时
    function onmessage(e)
    { 
        var data = JSON.parse(e.data);
        var music = document.getElementById("music2");
     	  console.log(data);
        switch(data['type']){
            // 服务端ping客户端
            case 7:
                      music.play();
     	              console.log("新订单");
                break;
            case 'init':
                         var login_data = '{"type":"bind","fromid":"a0"}';
                            console.log("websocket握手成功,发送登录数据:"+login_data);
                            ws.send(login_data);
                break;
            
        }
    }

  

 
    </script>

下面是说明

`.

1、音频标准

audio 元素支持三种音频格式:ogg、mp3、wav

-IE9-Firefox 3.5Opera 10.5Chrome 3.0Safari 3.0
Ogg Vorbis--
MP3--
Wav--

2.创建audio

<audio id="audio" src="music/Serenade.mp3" preload>
	对不起,您的浏览器不支持HTML5音频播放。
</audio>

由上述表格可见,至少要两种音频格式才能覆盖所有浏览器,所以一般在写audio标签时候,会使用提供多种资源,浏览器会根据它对媒体类型或者编码器的支持进行选择,如下:

<!--常用-->
<audio controls>
	type:指定文件类型
   <source src="horse.ogg" type="audio/ogg">
   <source src="horse.mp3" type="audio/mpeg">
</audio> 
属性描述
s’r’curl音频的url
autoplayautoplay音乐就绪后自动播放
controlscontrols浏览器应该提供播放插件
looploop音乐循环播放
reloadauto meta none- 当页面加载后载入整个视频 - 当页面加载后只载入元数据 - 当页面加载后不载入视频

3.操作audio

方法描述
load()重新加载音频元素
play()开始播放音频
pause()暂停当前播放的音频
volume设置或返回音频的音量,取值范围(0——1)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>简单音乐播放器</title>
		<link rel="stylesheet" href="css/music.css">
	</head>
	<body>
		<h3>简单音乐播放器</h3>
		<hr />

		<!--音乐文件的载入-->
		<!-- preload 属性规定是否在页面加载后载入视频。 -->
		<audio id="audio" src="music/Serenade.mp3" preload>
			对不起,您的浏览器不支持HTML5音频播放。
		</audio>

		<!--仿CD样式圆形图片-->
		<div id="CDimage">
			<img src="image/sky.jpg" />
		</div>

		<!--音量调节进度条-->
		<!-- step:买不,间隔,每次加减的多少0,0.1,0.2 -->
		<div>
			<input id="volume" type="range" min="0" max="1" step="0.1" />
		</div>


		<!--显示歌曲名称-->
		<div>
			当前正在播放: <span id="title">小夜曲</span>
		</div>

		<!--音乐播放器按钮-->
		<div>
			<button id="prevBtn"><img src="image/previous.png" width="50" height="50" /> </button>
			<button id="toggleBtn"><img src="image/play.png" width="50" height="50" /></button>
			<button id="nextBtn"><img src="image/next.png" width="50" height="50" /></button>
		</div>
		<script>
			/* 获取音乐audio,音量volume,暂停播放toggleBtn,歌曲名称title */
			var music = document.getElementById("audio");
			var volume = document.getElementById("volume");
			var toggleBtn = document.getElementById("toggleBtn");
			var title = document.getElementById("title");
			var prevBtn = document.getElementById("prevBtn");
			var nextBtn = document.getElementById("nextBtn");

			//音乐路径列表
			var list = new Array("music/Serenade.mp3", "music/EndlessHorizon.mp3", "music/月光下的云海.mp3");

			//音乐标题列表
			var titleList = new Array("小夜曲", "无尽的地平线", "月光下的云海");

			//定义当前是第几首曲目
			var i = 0;

			toggleBtn.onclick = function() {
				if (music.paused) {
					music.play();
					//播放音乐
					toggleBtn.innerHTML = '<img src="image/pause.png" width="50" height="50"/>';
				} else {
					music.pause();
					//暂停音乐
					toggleBtn.innerHTML = '<img src="image/play.png" width="50" height="50"/>';
				}
			}
			//切换上一首歌曲
			prevBtn.onclick = function() {
				if (i == 0) {
					i = list.length - 1;
				} else {
					i--;
					music.pause();
					music.src = list[i];
					title.innerHTML = titleList[i];
					music.play();
				}

			}
			//切换下一首歌曲
			nextBtn.onclick = function() {
				if (i == list.length - 1)
					i = 0;
				else
					i++;
				music.pause();
				music.src = list[i];
				title.innerHTML = titleList[i];
				music.play();
			}

			//设置音量大小
			volume.onchange=function(){
				 music.volume = volume.value;
			}
		</script>
	</body>
</html>