如何通过 HTML 按钮播放声音
Posted
技术标签:
【中文标题】如何通过 HTML 按钮播放声音【英文标题】:How to play sound through HTML buttons 【发布时间】:2016-08-26 08:13:08 【问题描述】:我目前通过我的网站播放音乐的方法是使用 html 音频标签。但是我希望能够通过 HTML 按钮来播放它。这个按钮应该能够在播放和停止之间切换音乐。我在 JSFiddle 上创建了一个示例,但不知道如何实现它。有人可以告诉我如何使用我的 JSFiddle 示例吗?
JSFiddle: http://jsfiddle.net/jTh3v/332/
我原来的做法:
document.getElementById("soundTag").innerHTML = "<audio controls volume preload='none' src='http://www.sousound.com/music/healing/healing_01.mp3'></audio>";
【问题讨论】:
Html 5 audio tag custom controls?的可能重复 【参考方案1】:您可以通过 onclick 事件播放声音...在 html 上插入一个按钮。编写一个函数并在您的按钮上调用它作为 onclick 事件。
function playMusic()
var music = new Audio('musicfile.mp3');
music.play();
<input type="button" value="sound" onclick="playMusic()" />
确保提供有效的文件名。
【讨论】:
【参考方案2】:这将起作用:
document.getElementById("soundTag").innerHTML = "<audio controls volume preload='none' src='http://www.sousound.com/music/healing/healing_01.mp3'></audio>";
$('#button_play').on('click', function()
//I added this
$("audio")[0].play();
$('#button_pause').show();
$('#button_play').hide();
);
$('#button_pause').on('click', function()
//I added this
$("audio")[0].pause();
$('#button_play').show();
$('#button_pause').hide();
);
.second
display: none;
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Instead of doing the audio tag method, I want to do it through the buttons. However I don't know how to do this.</p><br>
<p>HTML Audio tag method (the method I don't want):</p>
<div id="soundTag"></div><br>
<p>Button method (the method I want, but doesn't work):</p>
<div>
<button id="button_play" class="first" type="button">
<i class="glyphicon glyphicon-volume-up"></i></button>
<button id="button_pause" class="second" type="button">
<i class="glyphicon glyphicon-volume-off"></i></button>
</div>
【讨论】:
【参考方案3】:这样试试
$('#button_play').on('点击', function() $('#button_pause').show(); $('#button_play').hide(); $('音频')[0].play(); ); $('#button_pause').on('点击', function() $('#button_play').show(); $('#button_pause').hide(); $('audio')[0].pause(); );这里的想法是从返回的数组中获取音频元素并使用 HTML5 标记的方法。你可以从here找到的所有方法
【讨论】:
【参考方案4】:这行得通。删除我的 mp3 文件并上传您自己的 mp3 文件。
<button id="ASong" onClick="playPause()">
<audio
src="file_example_MP3_700KB.mp3"
autoplay
loop
></audio>
Song
</button>
<script>
var aud = document.getElementById("ASong").children[0];
var isPlaying = false;
aud.pause();
function playPause()
if (isPlaying)
aud.pause();
else
aud.play();
isPlaying = !isPlaying;
</script>
【讨论】:
【参考方案5】:播放和暂停按钮。
信息和代码来自https://www.w3schools.com/jsref/met_audio_play.asp
我把它放在这个http://jsfiddle.net/654qasw0/上(改变声源)
<!DOCTYPE html>
<html>
<body>
<audio id="myAudio">
<source src="https://upload.wikimedia.org/wikipedia/commons/1/11/H_is_for_horse.ogg" type="audio/ogg">
<source src="http://www.u86news.com/Music/Sounds/horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<p>Click the buttons to play or pause the audio.</p>
<button onclick="playAudio()" type="button">Play Audio</button>
<button onclick="pauseAudio()" type="button">Pause Audio</button>
<script>
var x = document.getElementById("myAudio");
function playAudio()
x.play();
function pauseAudio()
x.pause();
</script>
</body>
</html>
【讨论】:
【参考方案6】:试试这个:
<!DOCTYPE html>
<html>
<body>
<audio id="myAudio">
<source src="https://upload.wikimedia.org/wikipedia/commons/1/11/H_is_for_horse.ogg" type="audio/ogg">
<source src="http://www.u86news.com/Music/Sounds/horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<p>Click the buttons to play or pause the audio.</p>
<button onclick="playAudio()" type="button">Play Audio</button>
<button onclick="pauseAudio()" type="button">Pause Audio</button>
<script>
var x = document.getElementById("myAudio");
function playAudio()
x.play();
function pauseAudio()
x.pause();
</script>
</body>
</html>
或:
<button id="ASong" onClick="playPause()">
<audio
src="file_example_MP3_700KB.mp3"
autoplay
loop
></audio>
Song
</button>
<script>
var aud = document.getElementById("ASong").children[0];
var isPlaying = false;
aud.pause();
function playPause()
if (isPlaying)
aud.pause();
else
aud.play();
isPlaying = !isPlaying;
</script>
如果他们不工作,试试这个:
$('#button_play').on('click', function()
$('#button_pause').show();
$('#button_play').hide();
$('audio')[0].play();
);
$('#button_pause').on('click', function()
$('#button_play').show();
$('#button_pause').hide();
$('audio')[0].pause();
);
【讨论】:
以上是关于如何通过 HTML 按钮播放声音的主要内容,如果未能解决你的问题,请参考以下文章
如何在 HTML 中的 Image-Click 上播放声音?