Вход

Просмотр полной версии : Звук при нажатии на ссылку


Dave
05.05.2011, 17:27
Помогите пожалуйста, нужно чтобы при нажатии на ссылку проигрывался звук в wav. Весь интеренет перерыл, неужели такое не возможно без флеш? Есть какой нибудь скрипт?

walik
05.05.2011, 17:38
При клики создаете на странице элемент который воспроизведет звуковой файл. Если в 2-х словах, то, как то так.

Dave
05.05.2011, 17:39
а можно подробней?) как сам скрипт выглядит)

walik
05.05.2011, 18:00
<script>
function Sound() {
var embed = document.createElement('EMBED');
embed.src = 'sound.mid';
document.body.appendChild(embed);
}
</script>
<a href="#" onclick="Sound()">Click Me</a>

вроде должно работать, хотя не гарантирую. Вообще в нете инфы об этом дофига.

Dave
05.05.2011, 18:02
сделал, он при нажатии почемуто скачивает)

Magneto
05.05.2011, 18:08
Я использовал audio API, есть небольшие недочеты но исправить их очень легко аудио меню (http://dl.dropbox.com/u/6001712/javascript.ru/interaktiv-menu/interaktiv-menu-audio.html)

P.S. работает в браузерах поддерживающих HTML5 audio

Dave
05.05.2011, 18:15
Magneto а как сделать чтобы несколько кнопок и при нажатии на каждую свой звук был? :)

Dave
05.05.2011, 19:00
У меня сейчас вот такой код, работает одна кнопка, а как сделать на несколько?

<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>

walik
05.05.2011, 19:04
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);

Dave
05.05.2011, 19:06
а звук как второй подставлять? это вот самое непонятно, у звука своего id нету здесь даже...

Dave
05.05.2011, 19:12
Сделал вот так и вообще ничего не работает :(

<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>

Magneto
05.05.2011, 19:13
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);

Magneto
05.05.2011, 19:25
<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>

Dave
05.05.2011, 19:38
всё спасибо получилось)

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:

Dave
06.05.2011, 02:26
>>блин,ну вы даёте звук в wav можно пустить бекгранд нтмл4 пеозволяет это со свистом. для чего лисапеты?

Это как? Можно полный код? По терминам нчиего не понятно) Если bgsound то он не рабоатет в Хроме и мозиле
Кстати Magneto этот скрипт в мозиле и IE не работает(

dmitriymar
06.05.2011, 02:56
ну тогда толко один вариант. x-mplayer2 во все браузеры встроен и прjигрывеает wav во всех браузерах без подзагрузки его

Dave
06.05.2011, 03:00
а что в моём случае прописывать?)

Magneto
06.05.2011, 03:07
Кстати Magneto этот скрипт в мозиле и IE не работает(

Я вроде писал, или нет?

P.S. работает в браузерах поддерживающих HTML5 audio

И в мозиле работает, с версии 3.5

Dave
06.05.2011, 03:09
нет( не работает в мазиле... работает только в хроме и в опере...

Вот полностью мой код, может где ошибся:
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);

Magneto
06.05.2011, 03:14
Если аудио файлы находятся локально (у пользователя на компьютере) то в мозиле не будут работать. Нужно пробовать с сервера.

Dave
06.05.2011, 03:16
я с сервера работ1аю

Magneto
06.05.2011, 03:19
С кодом все нормально, только если объявляешь переменные через один вызов 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();

Dave
06.05.2011, 03:26
Сделал всё равно фаэрфокс молчит(

Magneto
06.05.2011, 03:27
Посмотри в 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

Dave
06.05.2011, 03:29
работает(((

p.s. )))

p.s.s. что же у меня то такое...

Magneto
06.05.2011, 03:35
Значит дело в твоем сервере, сервер должен отдавать заголовок ogg/audio, без этого заголовка FF не хочет играть аудио.

Dave
06.05.2011, 03:39
и что мне делать)

Dave
06.05.2011, 03:40
нет дело не в сервере) я залил к себе вот эти твои животных и всё нормально в фф работает)))

Magneto
06.05.2011, 03:45
Возможно дело в конвертере аудио, я конвертировал с помощью AIMP v2.61.583 Tools (Converter & Recorder) (http://www.aimp.ru/index.php?do=download)

Dave
06.05.2011, 03:48
всё равно не работает :(

Dave
06.05.2011, 03:49
поставил ссылки на твои файлы всё заработало! что за чуш)

Dave
06.05.2011, 03:52
и конвертер тут не виноват, именно с того сайта нормально грузит а с моег онет

Magneto
06.05.2011, 03:53
Сбрось один аудиофайл я гдяну на него.

Dave
06.05.2011, 03:54
нет я твою корову к себе залил на сервер она не стала работать, залили на сторонний заработала)

Magneto
06.05.2011, 03:55
Ясно, значит сервер.

Dave
06.05.2011, 03:57
а куда файлы можно заливать чтобы не удалили?

Magneto
06.05.2011, 04:02
Попробуй на Дропбоксе инвайт (http://db.tt/QWN9cOG), там файлы не удаляют но если сильная нагрузка будет то будут переодически блокировать аккаунт )).

Dave
06.05.2011, 04:06
оке)

Dave
06.05.2011, 04:15
https://dl-web.dropbox.com/get/kandi.ogg?w=f66d0ced

у меня ссылки такого вида почему то)

Dave
06.05.2011, 13:54
как поменять то?)

Magneto
06.05.2011, 14:57
Нужно установить Дропбокс-клиент к себе на компьютер.

Dave
06.05.2011, 15:02
ну блин я давно поставил уже)) ещё даже не зарегистрировавшись)

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