Объект HTML5 Audio не воспроизводится в Safari - PullRequest
4 голосов
/ 01 ноября 2010

На моей странице , я динамически создаю элемент HTML5 Audio в JavaScript:

bell = new Audio("alarmclock.mp3");

Позже (в ответ на истечение срока действия объекта обратного отсчета jQuery) я играю его:

bell.play();

Результаты:

  • Chrome (6.0.472.55) для Mac: звук воспроизводится нормально.
  • OmniWeb (5.10.2): звук воспроизводится нормально.
  • Safari (5.0.1) для Mac: Я ничего не слышу. Звук воспроизводится нормально.(Я не знаю, почему он не работал раньше.)
  • MobileSafari (iOS 3.1.3 - последняя версия для моего устройства): я ничего не слышу.

Какя пошел бы об устранении проблем это?Мне бы очень хотелось, чтобы он работал в MobileSafari, чтобы мое веб-приложение могло быть переносимым.

Ответы [ 2 ]

4 голосов
/ 18 января 2011

Об iPhone Safari: похоже play () работает при запуске события onclick Смотри http://groups.google.com/group/iphonewebdev/browse_thread/thread/91e31ba7ae25e6d4?hl=en

3 голосов
/ 02 ноября 2010

Хороший вопрос с вопросом «Как бы я решил эту проблему?». Вот мой план атаки ...

  • Отладка с Safari на Mac; если вы там работаете, то попробуйте протестировать с MobileSafari, так как последний - боль.
  • Начните сначала с пустой страницы. Вставьте звуковой элемент HTML5 в этот файл MP3 статически (не используя JavaScript).
  • Продолжайте работать с минимальной страницей. Используйте jQuery $(document).ready(function () { /* ... */ }) для загрузки аудио при загрузке страницы. Это все еще работает?
  • Хорошо, теперь попробуйте добавить логику обратного отсчета на демонстрационную страницу - как можно меньше. Это вызвало проблему?
  • Если вы достигли этой точки, и она все еще работает на вашей демонстрационной странице, вы знаете, что это будет что-то из всех других сложных вещей на вашем сайте, а не проблема со звуком или даже динамически загружаемым звуком. В таком случае удачи: -S. Либо добавляйте вещи на пустую страницу, каждый раз тестируя, либо временно удаляйте их с исходной страницы, пока это не сработает. Тогда вы узнаете, что вызвало проблему.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...