IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   как вставить звук в тег <a> на события onmuseover? (https://www.imho.ws/showthread.php?t=117180)

3bepek 26.03.2007 12:23

как вставить звук в тег <a> на события onmuseover?
 
Собственно сабж.
Есть ссылка, при наведении на которую должен играть звук (mp3-шка маленькая, типа щелчок). Как это можно реализовать?
Помогите пожалуйста!!

Псих 26.03.2007 12:24

к сожалению сейчас проекспериментировать не могу.
Попробуй так
Код:

onclick="document.bgsound='music.mid'"

mrdoggy 28.03.2007 23:22

на флеше если только..

CPUser 29.03.2007 06:46

Цитата:

Сообщение от 3bepek (Сообщение 1381408)
Собственно сабж.
Есть ссылка, при наведении на которую должен играть звук (mp3-шка маленькая, типа щелчок). Как это можно реализовать?
Помогите пожалуйста!!

Для IE есть такое решение:

1. создаем ни на что не ссылающийся bgsound, задаем ему определенный идентификатор:
Код:

<bgsound id=sound1 src=''>
2. т.к. звук должен воспроизводиться при наведении мыши, используем событие onmouseover для передачи элементу звукового проигрывателя необходимого параметра:
Код:

<a href="#" onmouseover="document.all['sound1'].src='1.mp3'">
P.S. В других браузерах скрипт не обязан работать - к примеру, Opera не поддерживает наверняка - только что пробовал... :(

3bepek 16.04.2007 13:31

да, спасибо. работает в ИЕ с БГ саундом.

жалко, что тока в ИЕ, но заказчика это устроило. :)
еще жалко, что код терь не валидный.. Но это так... выживу))

Hubbitus 25.04.2007 18:50

Чтобы кроссбраузерно, нужно еще и <embed name="sound"...> использовать, для НЕ ИЕ, которые <bgsound ...> не понимают.

CPUser 26.04.2007 00:40

Вложений: 1
Цитата:

Сообщение от Hubbitus (Сообщение 1398697)
Чтобы кроссбраузерно, нужно еще и <embed name="sound"...> использовать, для НЕ ИЕ, которые <bgsound ...> не понимают.

Насколько понимаю, Вы имеете в виду нечто подобное:

Код:

<embed id=sound1 src='filename.mp3' autostart=false hidden=true>

<a href="#" onmouseover="document.all['sound1'].play()" onmouseout="document.all['sound1'].stop()">Текст ссылки</a>

В результате теоретически код должен работать в любом браузере, где имеется соответствующий плагин (кстати, необходимость подключения внешнего плагина просто зверски увеличивает необходимое на проигрывание аудиофайла количество системных ресурсов - даже не самый слабый компьютер "подвиснет" на секунду).
Практически с ИЕ проблем, опять же не возникает, но вот та же Opera, к примеру, при своих стандартных настройках mp3-файл воспроизводить отказывается, да еще и форму embed не прячет (скриншот в аттаче).

Hubbitus 02.05.2007 23:39

Ну насчёт скорости тут уж действительно ничего не поделаешь - внешний плагин он и есть внешний. Ну а что делать, если для Браузер есть браузер, а звук играют другие приложения - тут всеравног должен быть этот вызов. Когда закешируется, все играется вполне приемлемо.

Да, при стандартных настройках Опера помоему и не может ничего воспроизводить. Думаю что это нормально что для использования плагинов где-либо их нужно установить, не находите? С другой стороны, те кто пользуется Оперой, и хотят слушать в ней встроенные звуки (и возможно видео) имеют уже настроенные подобные плагины в ней.

Вот насчет прячет, тут сложнее. Прячет-то прячет, только вот при display: none у меня она почему-то отказалась играть звук вообще... Не знаю с чем это связано, не исключаю что с кривизной моих рук. Но, с дургой стороны, особенно я мучаться и не стал - ну можно же сделать 1на1 пиксел (а может и 0на0 получится, надо попробовать) его размером, и разместить в нужном месте страницы, чтобы это было не заметно. Не вижу в этом проблемы.

CPUser 04.05.2007 09:05

Цитата:

Сообщение от Hubbitus (Сообщение 1402110)
Ну насчёт скорости тут уж действительно ничего не поделаешь - внешний плагин он и есть внешний. Ну а что делать, если для Браузер есть браузер, а звук играют другие приложения - тут всеравног должен быть этот вызов. Когда закешируется, все играется вполне приемлемо.

Не забывайте, что с IE подобных проблем не возникает, mp3 декодируется мгновенно - видимо браузер проигрывает звук сам, используя соотв. декодер. Opera, к сожалению, способна самостоятельно декодировать лишь midi и wav-форматы.


Цитата:

Сообщение от Hubbitus (Сообщение 1402110)
Да, при стандартных настройках Опера помоему и не может ничего воспроизводить. Думаю что это нормально что для использования плагинов где-либо их нужно установить, не находите? С другой стороны, те кто пользуется Оперой, и хотят слушать в ней встроенные звуки (и возможно видео) имеют уже настроенные подобные плагины в ней.

Пользуюсь Оперой лично уже не первый год, но с этой проблемой ни разу не встречался, ибо сам тег embed, как правило, применяется для интеграции flash, изредка видео (хотя много чаще в виде flash-video - опять же интеграция flash). А звук обычно представляется в midi- или wav-форматах - форматах, декодируемых напрямую браузером (или тот же flash-stream ;)).

Насколько понимаю, желательно было бы написать такой код, который мог бы работать у ЛЮБОГО клиента, все зависимости от браузера при стандартных (или общепринятых) настройках.

Цитата:

Сообщение от Hubbitus (Сообщение 1402110)
Вот насчет прячет, тут сложнее. Прячет-то прячет, только вот при display: none у меня она почему-то отказалась играть звук вообще... Не знаю с чем это связано, не исключаю что с кривизной моих рук. Но, с дургой стороны, особенно я мучаться и не стал - ну можно же сделать 1на1 пиксел (а может и 0на0 получится, надо попробовать) его размером, и разместить в нужном месте страницы, чтобы это было не заметно. Не вижу в этом проблемы.

0x0 работает, соответствуя 1x1, причем оба практически оказываются больше (видимо, особенность отображения) со style=display:none истинно не работает - выход очевиден. ;)


Единственное решение (кроме flash), на данный момент:

1. Так как звук недолгий, то не будет очень много весить и в wav-формате (для наименьшего размера можно частоту дискретизации и число каналов уменьшить - до 8KHz/mono): конвертируем mp3-файл в wav. Wav, в свою очередь, поддерживается напрямую, без плагинов и IE, и Opera.

2. В самый конец описания страницы (так, чтобы дизайн не "съехал") помещаем пустой блок с идентификатором:
Код:

<span id=s1 style=""></span>
3. Пишем код вызова звука:
Код:

<a href="#" onmouseover="document.all['s1'].innerHTML='<embed src=\'filename.wav\' autostart=true width=0 height=0>'" onmouseout="document.all['s1'].innerHTML=''">Текст ссылки</a>
Данный код проверен и работает!


Часовой пояс GMT +4, время: 02:39.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.