Просмотр полной версии : Звук при нажатии на ссылку
Помогите пожалуйста, нужно чтобы при нажатии на ссылку проигрывался звук в wav. Весь интеренет перерыл, неужели такое не возможно без флеш? Есть какой нибудь скрипт?
При клики создаете на странице элемент который воспроизведет звуковой файл. Если в 2-х словах, то, как то так.
а можно подробней?) как сам скрипт выглядит)
<script>
function Sound() {
var embed = document.createElement('EMBED');
embed.src = 'sound.mid';
document.body.appendChild(embed);
}
</script>
<a href="#" onclick="Sound()">Click Me</a>
вроде должно работать, хотя не гарантирую. Вообще в нете инфы об этом дофига.
сделал, он при нажатии почемуто скачивает)
Я использовал audio API, есть небольшие недочеты но исправить их очень легко аудио меню (http://dl.dropbox.com/u/6001712/javascript.ru/interaktiv-menu/interaktiv-menu-audio.html)
P.S. работает в браузерах поддерживающих HTML5 audio
Magneto а как сделать чтобы несколько кнопок и при нажатии на каждую свой звук был? :)
У меня сейчас вот такой код, работает одна кнопка, а как сделать на несколько?
<script type="text/javascript">
var audioMenu = new Audio;
audioMenu.src = "wav/pocik.wav";
var pocik = document.getElementById('pocik');
pocik.getElementsByTagName('span')[0].addEventListener('mousedown', function(){audioMenu.play();}, false);
</script>
pocik.getElementsByTagName('span')[0].addEventListener('mousedown', function(){audioMenu.play();}, false);
pocik.getElementsByTagName('span')[1].addEventListener('mousedown', function(){audioMenu.play();}, false);
//...
pocik.getElementsByTagName('span')[n].addEventListener('mousedown', function(){audioMenu.play();}, false);
а на разные звуки, разные объекты к примеру создаете:
var firstAudio= new Audio,
secondAudio = new Audio,
thirdAudio = new Audio;
firstAudio.src = "wav/pocik.wav";
secondAudio.src = "wav/pocik2.wav";
thirdAudio.src = "wav/pocik3.wav";
pocik.getElementsByTagName('span')[0].addEventListener('mousedown', function(){firstAudio.play();}, false);
pocik.getElementsByTagName('span')[1].addEventListener('mousedown', function(){secondAudio.play();}, false);
pocik.getElementsByTagName('span')[n].addEventListener('mousedown', function(){thirdAudio.play();}, false);
а звук как второй подставлять? это вот самое непонятно, у звука своего id нету здесь даже...
Сделал вот так и вообще ничего не работает :(
<script type="text/javascript">
var pocik = new Audio;
povar = new Audio;
pocik.src = "wav/pocik.wav";
povar.src = "wav/povar.wav";
pocik.getElementsByTagName('span')[0].addEventListener('mousedown', function(){pocik.play();}, false);
povar.getElementsByTagName('span')[1].addEventListener('mousedown', function(){povar.play();}, false);
</script>
var firstAudio= new Audio,
secondAudio = new Audio,
thirdAudio = new Audio;
firstAudio.src = "wav/pocik.wav";
secondAudio.src = "wav/pocik2.wav";
thirdAudio.src = "wav/pocik3.wav";
pocik.getElementsByTagName('span')[0].addEventListener('mousedown', function(){firstAudio.play();}, false);
pocik.getElementsByTagName('span')[1].addEventListener('mousedown', function(){secondAudio.play();}, false);
pocik.getElementsByTagName('span')[n].addEventListener('mousedown', function(){thirdAudio.play();}, false);
Надо еще указать чтоб браузер загрузил аудиофайлы (некоторые браузеры загружают поумолчанию)
var firstAudio= new Audio,
secondAudio = new Audio,
thirdAudio = new Audio;
firstAudio.src = "wav/pocik.wav";
secondAudio.src = "wav/pocik2.wav";
thirdAudio.src = "wav/pocik3.wav";
firstAudio.load();
secondAudio.load();
thirdAudio.load();
pocik.getElementsByTagName('span')[0].addEventListener('mousedown', function(){firstAudio.play();}, false);
pocik.getElementsByTagName('span')[1].addEventListener('mousedown', function(){secondAudio.play();}, false);
pocik.getElementsByTagName('span')[2].addEventListener('mousedown', function(){thirdAudio.play();}, false);
<html><head>
</head><body>
<a href="#" id="cow">Корова</a>
<a href="#" id="dog">Собака</a>
<a href="#" id="pig">Свинья</a>
<script type="text/javascript">
var firstAudio= new Audio();
var secondAudio = new Audio();
var thirdAudio = new Audio();
firstAudio.src = "http://dl.dropbox.com/u/6001712/javascript.ru/audio/cow.ogg";
secondAudio.src = "http://dl.dropbox.com/u/6001712/javascript.ru/audio/dog.ogg";
thirdAudio.src = "http://dl.dropbox.com/u/6001712/javascript.ru/audio/pig.ogg";
firstAudio.load();
secondAudio.load();
thirdAudio.load();
document.getElementsByTagName('a')[0].addEventListener('mousedown', function(){firstAudio.play();}, false);
document.getElementsByTagName('a')[1].addEventListener('mousedown', function(){secondAudio.play();}, false);
document.getElementsByTagName('a')[2].addEventListener('mousedown', function(){thirdAudio.play();}, false);
</script>
</body></html>
Paguo-86PK
06.05.2011, 00:33
Морзе- (https://softrash.googlecode.com/hg/online/morse2midi.html)биппер (может потребовать установленный QuickTime)
dmitriymar
06.05.2011, 01:31
блин,ну вы даёте звук в wav можно пустить бекгранд нтмл4 пеозволяет это со свистом. для чего лисапеты?:yes:
>>блин,ну вы даёте звук в wav можно пустить бекгранд нтмл4 пеозволяет это со свистом. для чего лисапеты?
Это как? Можно полный код? По терминам нчиего не понятно) Если bgsound то он не рабоатет в Хроме и мозиле
Кстати Magneto этот скрипт в мозиле и IE не работает(
dmitriymar
06.05.2011, 02:56
ну тогда толко один вариант. x-mplayer2 во все браузеры встроен и прjигрывеает wav во всех браузерах без подзагрузки его
а что в моём случае прописывать?)
Кстати Magneto этот скрипт в мозиле и IE не работает(
Я вроде писал, или нет?
P.S. работает в браузерах поддерживающих HTML5 audio
И в мозиле работает, с версии 3.5
нет( не работает в мазиле... работает только в хроме и в опере...
Вот полностью мой код, может где ошибся:
var pocik = new Audio();
slavik = new Audio();
kandi = new Audio();
povar = new Audio();
padarasi = new Audio();
sparta = new Audio();
nikita = new Audio();
maladoi = new Audio();
pocik.src = "ogg/pocik.ogg";
slavik.src = "ogg/slavik.ogg";
kandi.src = "ogg/kandi.ogg";
povar.src = "ogg/povar.ogg";
padarasi.src = "ogg/padarasi.ogg";
sparta.src = "ogg/sparta.ogg";
nikita.src = "ogg/nikita.ogg";
maladoi.src = "ogg/maladoi.ogg";
pocik.load();
slavik.load();
kandi.load();
povar.load();
padarasi.load();
sparta.load();
nikita.load();
maladoi.load();
document.getElementsByTagName('span')[0].addEventListener('mousedown', function(){pocik.play();}, false);
document.getElementsByTagName('span')[1].addEventListener('mousedown', function(){slavik.play();}, false);
document.getElementsByTagName('span')[2].addEventListener('mousedown', function(){kandi.play();}, false);
document.getElementsByTagName('span')[3].addEventListener('mousedown', function(){povar.play();}, false);
document.getElementsByTagName('span')[4].addEventListener('mousedown', function(){padarasi.play();}, false);
document.getElementsByTagName('span')[5].addEventListener('mousedown', function(){sparta.play();}, false);
document.getElementsByTagName('span')[6].addEventListener('mousedown', function(){nikita.play();}, false);
document.getElementsByTagName('span')[7].addEventListener('mousedown', function(){maladoi.play();}, false);
Если аудио файлы находятся локально (у пользователя на компьютере) то в мозиле не будут работать. Нужно пробовать с сервера.
С кодом все нормально, только если объявляешь переменные через один вызов var то нужно после кождого объявления переменной ставить запятые а не точку с запятой.
Вот так:
var pocik = new Audio(),
slavik = new Audio(),
kandi = new Audio(),
povar = new Audio(),
padarasi = new Audio(),
sparta = new Audio(),
nikita = new Audio(),
maladoi = new Audio();
Сделал всё равно фаэрфокс молчит(
Посмотри в FireFox работает ли пример который я вылаживал здесь? пример (http://javascript.ru/forum/dom-window/17094-zvuk-pri-nazhatii-na-ssylku-2.html#post103483) , нужно нажать на эту кнопочку ))http://dl.dropbox.com/u/6001712/javascript.ru/audio/mag.png
работает(((
p.s. )))
p.s.s. что же у меня то такое...
Значит дело в твоем сервере, сервер должен отдавать заголовок ogg/audio, без этого заголовка FF не хочет играть аудио.
нет дело не в сервере) я залил к себе вот эти твои животных и всё нормально в фф работает)))
Возможно дело в конвертере аудио, я конвертировал с помощью AIMP v2.61.583 Tools (Converter & Recorder) (http://www.aimp.ru/index.php?do=download)
поставил ссылки на твои файлы всё заработало! что за чуш)
и конвертер тут не виноват, именно с того сайта нормально грузит а с моег онет
Сбрось один аудиофайл я гдяну на него.
нет я твою корову к себе залил на сервер она не стала работать, залили на сторонний заработала)
а куда файлы можно заливать чтобы не удалили?
Попробуй на Дропбоксе инвайт (http://db.tt/QWN9cOG), там файлы не удаляют но если сильная нагрузка будет то будут переодически блокировать аккаунт )).
https://dl-web.dropbox.com/get/kandi.ogg?w=f66d0ced
у меня ссылки такого вида почему то)
Нужно установить Дропбокс-клиент к себе на компьютер.
ну блин я давно поставил уже)) ещё даже не зарегистрировавшись)
Leonline
29.04.2012, 05:12
Пример 1:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script LANGUAGE="JavaScript">
<!--
function playMusic() {
document.al.play();
}
//-->
</SCRIPT>
</head>
<BODY>
<EMBED SRC="2.wav" HIDDEN=TRUE autostart="false" name="al" MASTERSOUND>
<A HREF="#" onClick="playMusic()">Play the sound now!</A>
</BODY>
</html>
Пример 2:
<script LANGUAGE="JavaScript"><!--
// Preload and play audio files with event handler (MouseOver sound)
// designed by JavaScript Archive, (c)1999
// Get more free javascripts at _http://jsarchive.8m.com
var aySound = new Array();
// Below: source for sound files to be preloaded
aySound[0] = "click.wav";
aySound[1]="hover.wav";
// DO NOT edit below this line
document.write('<BGSOUND ID="auIEContainer">')
IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0;
NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
ver4 = IE||NS? 1:0;
onload=auPreload;
function auPreload() {
if (!ver4) return;
if (NS) auEmb = new Layer(0,window);
else {
Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>";
document.body.insertAdjacentHTML("BeforeEnd",Str);
}
var Str = '';
for (i=0;i<aySound.length;i++)
Str += "<EMBED SRC='"+aySound[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"
if (IE) auEmb.innerHTML = Str;
else {
auEmb.document.open();
auEmb.document.write(Str);
auEmb.document.close();
}
auCon = IE? document.all.auIEContainer:auEmb;
auCon.control = auCtrl;
}
function auCtrl(whSound,play) {
if (IE) this.src = play? aySound[whSound]:'';
else eval("this.document.embeds[whSound]." + (play? "play()":"stop()"))
}
function playSound(whSound) { if (window.auCon) auCon.control(whSound,true); }
function stopSound(whSound) { if (window.auCon) auCon.control(whSound,false); }
//-->
</script>
<input type="button" value="Click here" onClick="playSound(0)" onMouseOver="playSound(1)">
такоесукаимянезанято
15.02.2016, 23:32
Здравствуйте, у Вас ошибочка в скрипте. Епся сегодня полдня не могу понять в чем дело. Оказывается у Вас в слове thridAudio ошибка. Перепутаны местами буквы R и I
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot