Bunu nasıl yapabilirim, böylece bir kullanıcı bir bağlantıyı tıkladığında ses çalarız? Burada javascript ve jquery kullanılıyor.
.load()
, .play()
API kullanarak anahtar anlarda onları.
Bunu nasıl yapabilirim, böylece bir kullanıcı bir bağlantıyı tıkladığında ses çalarız? Burada javascript ve jquery kullanılıyor.
.load()
, .play()
API kullanarak anahtar anlarda onları.
Yanıtlar:
Bu eklentiyi kullanın: https://github.com/admsev/jquery-play-sound
$.playSound('http://example.org/sound.mp3');
<audio>
Sayfanıza bir öğe ekleyin.
Ses öğenizi alın ve play()
yöntemi çağırın :
document.getElementById('yourAudioTag').play();
Şu örneğe bakın: http://www.storiesinflight.com/html5/audio.html
Bu site aşağıdaki gibi yapabileceğiniz diğer serin bazı şeyleri ortaya çıkarır load()
, pause()
ve ses elemanın birkaç diğer özellikleri.
Bu ses öğesini tam olarak ne zaman çalmak istediğiniz size kalmış. Düğmenin metnini okuyun ve isterseniz "hayır" ile karşılaştırın.
http://www.schillmania.com/projects/soundmanager2/
SoundManager 2, sesin IE 6+ dahil herhangi bir modern tarayıcıda çalınmasına izin veren kullanımı kolay bir API sağlar. Tarayıcı HTML5'i desteklemiyorsa, flash'tan yardım alır. Kesin bir şekilde HTML5 istiyorsanız ve flash istemiyorsanız, bunun için bir ayar var, tercihFlash = false
İPad, iPhone (iOS4) ve diğer HTML5 özellikli cihazlar + tarayıcılarda% 100 Flash'sız sesi destekler
Kullanım şu kadar basittir:
<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');
});
İşte uygulamalı bir demosu: http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/
Böyle bir şey buldum:
//javascript:
function playSound( url ){
document.getElementById("sound").innerHTML="<embed src='"+url+"' hidden=true autostart=true loop=false>";
}
Html5 ses etiketi ve jquery kullanarak:
// 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();
Kod buradan .
Uygulamamda, jquery append olmadan sesi doğrudan HTML'ye ekledim.
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)
... burada çözüm gibi görünüyor: stackoverflow.com/a/52821721
JavaScript Ses Yöneticisi:
$('a').click(function(){
$('embed').remove();
$('body').append('<embed src="/path/to/your/sound.wav" autostart="true" hidden="true" loop="false">');
});
Web Audio API ile bunu yapabilen küçük bir işlev yazdım ...
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);
};
Yeni ortaya çıkan ... şu ana kadar IE, Gecko tarayıcıları ve iPhone ile uyumlu görünüyor ...
Aşağıdaki kod, yalnızca javascript kullanarak bir web sayfasında ses çalmanıza yardımcı olabilir. Daha fazla ayrıntıyı http://sourcecodemania.com/playing-sound-javascript-flash-player/ adresinde görebilirsiniz.
<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>
İlk önce, bir kullanıcı olarak bundan hoşlanmam.
Bunu yapmanın en iyi yolu muhtemelen sesinizi arka planda çalan küçük bir flaş uygulaması kullanmaktır.
Burada ayrıca yanıt verildi: Javascript'ten ses çalmanın çapraz platform, çapraz tarayıcı yolu?