Làm cách nào tôi có thể làm điều đó, vì vậy bất cứ khi nào người dùng nhấp vào liên kết, chúng tôi sẽ phát âm thanh? Sử dụng javascript và jquery tại đây.
.load()
, .play()
chúng trong những khoảnh khắc quan trọng bằng cách sử dụng api.
Làm cách nào tôi có thể làm điều đó, vì vậy bất cứ khi nào người dùng nhấp vào liên kết, chúng tôi sẽ phát âm thanh? Sử dụng javascript và jquery tại đây.
.load()
, .play()
chúng trong những khoảnh khắc quan trọng bằng cách sử dụng api.
Câu trả lời:
Sử dụng plugin này: https://github.com/admsev/jquery-play-sound
$.playSound('http://example.org/sound.mp3');
Đặt một <audio>
phần tử trên trang của bạn.
Lấy phần tử âm thanh của bạn và gọi play()
phương thức:
document.getElementById('yourAudioTag').play();
Kiểm tra ví dụ này: http://www.storiesinflight.com/html5/audio.html
Trang web này phát hiện ra một số điều thú vị khác bạn có thể làm như load()
, pause()
và một vài thuộc tính khác của các yếu tố âm thanh.
Thời điểm chính xác bạn muốn phát phần tử âm thanh này là tùy thuộc vào bạn. Đọc văn bản của nút và so sánh nó với "không" nếu bạn thích.
http://www.schillmania.com/projects/soundmanager2/
SoundManager 2 cung cấp một API dễ sử dụng cho phép phát âm thanh trong bất kỳ trình duyệt hiện đại nào, kể cả IE 6+. Nếu trình duyệt không hỗ trợ HTML5, thì nó sẽ nhận được sự trợ giúp từ flash. Nếu bạn muốn HTML5 chính xác và không có flash, có một cài đặt cho điều đó, preferFlash = false
Nó hỗ trợ 100% âm thanh không có Flash trên iPad, iPhone (iOS4) và các thiết bị + trình duyệt hỗ trợ HTML5 khác
Sử dụng đơn giản như:
<script src="soundmanager2.js"></script>
<script>
// where to find flash SWFs, if needed...
soundManager.url = '/path/to/swf-files/';
soundManager.onready(function() {
soundManager.createSound({
id: 'mySound',
url: '/path/to/an.mp3'
});
// ...and play it
soundManager.play('mySound');
});
Đây là bản demo của nó đang hoạt động: http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/
Tìm thấy một cái gì đó giống như vậy:
//javascript:
function playSound( url ){
document.getElementById("sound").innerHTML="<embed src='"+url+"' hidden=true autostart=true loop=false>";
}
Sử dụng thẻ âm thanh html5 và jquery:
// appending HTML5 Audio Tag in HTML Body
$('<audio id="chatAudio">
<source src="notify.ogg" type="audio/ogg">
<source src="notify.mp3" type="audio/mpeg">
</audio>').appendTo('body');
// play sound
$('#chatAudio')[0].play();
Mã từ đây .
Trong quá trình triển khai của mình, tôi đã thêm âm thanh nhúng trực tiếp vào HTML mà không cần nối thêm jquery.
Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first
, Chrome Version 70.0.3538.102 (Official Build) (64-bit)
... có vẻ là giải pháp ở đây: stackoverflow.com/a/52821721
Trình quản lý âm thanh JavaScript:
$('a').click(function(){
$('embed').remove();
$('body').append('<embed src="/path/to/your/sound.wav" autostart="true" hidden="true" loop="false">');
});
Tôi đã viết một hàm nhỏ có thể làm được điều đó, với API âm thanh web ...
var beep = function(duration, type, finishedCallback) {
if (!(window.audioContext || window.webkitAudioContext)) {
throw Error("Your browser does not support Audio Context.");
}
duration = +duration;
// Only 0-4 are valid types.
type = (type % 5) || 0;
if (typeof finishedCallback != "function") {
finishedCallback = function() {};
}
var ctx = new (window.audioContext || window.webkitAudioContext);
var osc = ctx.createOscillator();
osc.type = type;
osc.connect(ctx.destination);
osc.noteOn(0);
setTimeout(function() {
osc.noteOff(0);
finishedCallback();
}, duration);
};
Mới xuất hiện ... dường như tương thích với trình duyệt IE, Gecko và iPhone cho đến nay ...
Đoạn mã sau có thể giúp bạn phát âm thanh trong trang web chỉ sử dụng javascript. Bạn có thể xem thêm chi tiết tại http://sourcecodemania.com/playing-sound-javascript-flash-player/
<script>
function getPlayer(pid) {
var obj = document.getElementById(pid);
if (obj.doPlay) return obj;
for(i=0; i<obj.childNodes.length; i++) {
var child = obj.childNodes[i];
if (child.tagName == "EMBED") return child;
}
}
function doPlay(fname) {
var player=getPlayer("audio1");
player.play(fname);
}
function doStop() {
var player=getPlayer("audio1");
player.doStop();
}
</script>
<form>
<input type="button" value="Play Sound" onClick="doPlay('texi.wav')">
<a href="#" onClick="doPlay('texi.wav')">[Play]</a>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
width="40"
height="40"
id="audio1"
align="middle">
<embed src="wavplayer.swf?h=20&w=20"
bgcolor="#ffffff"
width="40"
height="40"
allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"
/>
</object>
<input type="button" value="Stop Sound" onClick="doStop()">
</form>
Điều đầu tiên, tôi không thích điều đó với tư cách là một người dùng.
Cách tốt nhất để làm có lẽ là sử dụng một applet flash nhỏ phát âm thanh của bạn trong nền.
Cũng đã trả lời ở đây: Cách phát âm thanh từ Javascript trên nhiều nền tảng, nhiều trình duyệt?