如何用js控制audio元素连续播放mp3文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用js控制audio元素连续播放mp3文件相关的知识,希望对你有一定的参考价值。

参考技术A 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<audio id="myaudio"></audio>
</body>
<script>
// window.onload = function()

//页面加载完成之后,通过给audio添加autoplay属性,音频下载完成之后自动播放
// var oAudio = document.getElementById('myaudio');
// oAudio.src = 'Le_Papillon.mp3';

//
//mp3文件名
var mp3List = [
'Girlfriend.mp3',
'Have A Nice Day.mp3',
'Le Papillon.mp3',
'She Is.mp3',
'Tik Tok.mp3'
],
//文件路径
baseUrl = '../music/';

function getMusic(list)

var len = list.length,
num = parseInt(<a href="https://www.baidu.com/s?wd=Math.random&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YYmvP9PW0LrHw-uHTkuHTs0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHnvP1czPjf3rHn1P1f4P1fkrf" target="_blank" class="baidu-highlight">Math.random</a>()*len, 10),
music = baseUrl + list[num];

if(music)

return music;

else

getMusic(list, baseUrl);




canPlay(playAudio);
//查看是否支持audio标签,如果支持,预加载当前指向mp3文件
function canPlay(callback)

var currentFile = getMusic(mp3List);
try
var audio = new Audio();

audio.oncanplay = function()
callback(currentFile);


audio.src = currentFile;

audio.load();
catch(e)
callback(false, e);



//play
function playAudio(currentFile)
// Check for audio element support.
if (window.HTMLAudioElement && currentFile)
try
var oAudio = document.getElementById('myaudio');

oAudio.src = currentFile;

if (oAudio.paused)
oAudio.play();

else
oAudio.pause();


oAudio.onended = function()
oAudio.src = getMusic(mp3List);
oAudio.play();



catch (e)
// Fail silently but show in F12 developer tools console
if(window.console && console.error("Error:" + e));



</script>
</html>

如何用js控制audio元素连续播放mp3文件

参考技术A

1、首先我们先来看一下音频元素最基本的应用以及样式,如下图所示,运用audio元素即可,controls是用来控制是否显示控制条。

2、另外音频文件的格式也可以多样,如下图所示,也可以是ogg文件。

3、接下来我们来看一下音频元素的属性,上面创建的音频元素你发现它需要手动点击才能播放。如果你加了autoplay就会自动播放,如下图所示。

4、还有一个loop属性,是用来控制音频文件是否循环播放的,如下图所示。

5、接下来,preload属性是用来告诉音频文件是否预加载的,加上这个属性后。

6、最后要提醒的是src里面不仅可以写本地的文件,也可以写远程的文件地址,如下图所示。

以上是关于如何用js控制audio元素连续播放mp3文件的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS获取audio标签的已播放时长并控制进度条的width

[HTML] 如何用html播放mp3文件?

如何用HTML写代码实现自动播放音乐

在网页上连续播放 mp3 的最有效方式(如网络收音机)

HTML5 audio 如何实现播放多个MP3音频

HTML5 Audio 播放本地 mp3 文件的播放列表