Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Звук при нажатии на ссылку (https://javascript.ru/forum/dom-window/17094-zvuk-pri-nazhatii-na-ssylku.html)

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, есть небольшие недочеты но исправить их очень легко аудио меню

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

Морзе-биппер (может потребовать установленный 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

Цитата:

Сообщение от Dave (Сообщение 103527)
Кстати Magneto этот скрипт в мозиле и IE не работает(

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

Сообщение от Magneto (Сообщение 103527)
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 работает ли пример который я вылаживал здесь? пример , нужно нажать на эту кнопочку ))

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)

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

Попробуй на Дропбоксе инвайт, там файлы не удаляют но если сильная нагрузка будет то будут переодически блокировать аккаунт )).

Dave 06.05.2011 04:06

оке)


Часовой пояс GMT +3, время: 20:28.