HTML: почему встроенный звук иногда не воспроизводится?

Я испытываю странное поведение встроенного аудио (файл wav) на HTML-странице. У меня есть страница https://server.com/listen-to-sound и встроенный в нее Wav-файл с помощью тега <EMBED/>, например:

<embed src='https://server.com/path-to-sound' hidden="true" autostart="true" />

Страница https://server.com/listen-to-sound открыта в IE 6 SP3 на машине №1 - звук воспроизводится в наушниках. Та же страница открывается на другом компьютере (№2), с точно такой же версией IE 6 SP3, настройками конфиденциальности и прокси - звука нет.

Итого, из 6-ти машин на 2-х звук воспроизводится, а на 4-х не воспроизводится. С этих 4-х машин при открытии страницы https://server.com/listen-to-sound в Опере звук проигрывается.

Я трижды проверил подключение наушников, настройки громкости и другие возможные проблемы с аппаратным и программным драйвером: проблема определенно в настройках IE.

Я также проверил https://server.com/path.to.sound URL-адрес - 4 машины, которые не воспроизводят звук, не могут открыть эту ссылку, выдавая ошибку типа «Не удалось загрузить страницу».

Очистка кешей IE, временных интернет-файлов, кешей SSL-сертификатов также не решила проблему.

Гугление не дало мне ничего особенного, кроме старого трюка Flash с использованием тега <OBJECT> и тега <EMBED> для написания в комментариях Object.

Что я пропустил? Сталкивались ли вы с подобными или связанными проблемами? Как они решались? Есть ли у вас какие-либо предложения о том, где трюк? Знаете ли вы некоторые «функции» IE, которые могут повлиять на выполнение (воспроизведение, отображение) встроенных объектов?


person DiaWorD    schedule 29.10.2008    source источник


Ответы (4)


Я не нашел решения, но могу подтвердить, что проблема скорее всего в https:. Я обнаружил, что проигрыватель Windows Media не воспроизводит файлы с полным URL/src, ведущим к https. Тем не менее, quicktime будет. Таким образом, компьютеры с QuickTime успешно воспроизведут файл, а компьютеры с WMP потерпят неудачу.

Одним из «решений» является ссылка на http: (небезопасную) версию файла.

person Jason    schedule 27.06.2010

Я не смог найти никакой информации об этом, но вы пробовали воспроизводить звук из Javascript? Я не знаю, подходит ли вам это решение, но это может быть решением.
Вы можете найти различные способы сделать это здесь: http://www.phon.ucl.ac.uk/home/mark/audio/play.htm

Надеюсь, это поможет вам.

person netsuo    schedule 29.10.2008
comment
Проблема в том, что решение должно работать без JavaScript, это было указано как требование. - person DiaWorD; 29.10.2008

Что касается вашего комментария к jamesh, то я бы посоветовал дать ссылку на аудиофайл: на некоторых компьютерах (у меня на работе) нет звука, не все используют IE, embed не является частью HTML (это хак поддерживается различными браузерами, но не определен в HTML 4.01 Transitional DTD, например), и есть вероятность, что в посещаемом браузере нет подключаемого модуля для воспроизведения вашего звука.

Как показывают ваши тесты, он склонен к проблемам...

В худшем случае предоставьте тег <NOEMBED> для предоставления указанной ссылки. Или вложите различные методы, например <object>. По крайней мере, Flash поддерживается почти всеми браузерами.

person PhiLho    schedule 29.10.2008

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

Заставить воспроизведение мультимедиа внутри веб-страницы всегда было непросто. Вы можете попробовать что-то вроде этого:

<object type="audio/x-wav" data="data/test.wav" width="200" height="20">
  <param name="src" value="data/test.wav">
  <param name="autoplay" value="false">
  <param name="autoStart" value="0">
  alt : <a href="data/test.wav">test.wav</a>
</object>

Приведенное выше взято с этого сайта и объясняет, как использовать тег объекта.

person Travis    schedule 04.05.2009