2013-04-04 4 views
2

Я искал всюду для своей проблемы и нашел ответы, но не работал, когда я его реализовал.Аудио-элемент не работает в Safari 5.1

Вот мой простой код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Audio Test</title> 
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function(){ 
    play_audio(); 
    }); 

    $(document).on("click", "#play-btn", function(){ 
    play_audio(); 
    }); 

    function play_audio(){ 
    var notify = document.getElementById("sound-notification"); 
    notify.play(); 
    } 

</script> 

</head> 

<body> 

<audio id="sound-notification" src="beep.ogg"></audio> 

<button id="play-btn">Play</button> 

hello world 

</body> 
</html> 

Есть два способа, которые я генерировать аудио звук, сразу после загрузки страницы, и когда пользователь нажимает на кнопку.

Все отлично работает в FF и Chrome, но не в Safari (у меня есть версия 5.1.7)

Я не уверен, если я сделал что-то неправильно или что.

Любая помощь будет очень признательна.

Спасибо.

+0

Знаете ли вы, поддерживает ли сафари ogg, я не думаю, что это так. – Musa

+0

Здравствуйте, благодарю вас за ответ. Я пробовал формат, m4a, wav, но он все еще не работает. – Eralph

+0

У вас установлено быстрое время? – Musa

ответ

0

Вы должны использовать html5 doctype, чтобы страница интерпретировала это как документ HTML5.

<!doctype html> 

и не то, что вы использовали как.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

ОБНОВЛЕНО КОД

<script type="text/javascript"> 

$(function() { 
$(document).on("click", "#play-btn", function(){ 
    play_audio(); 
    }); 

    function play_audio(){ 
    var notify = document.getElementById("sound-notification"); 
    notify.play(); 
    } 

}); 

</script> 
+0

Привет, я попробовал ваше предложение, но он не имеет никаких изменений. Он по-прежнему работает в FF и Chrome, но не в Safari. Благодарю. – Eralph

+0

проверить мой обновленный код, он должен работать. вы не вызываете play_audio(); работает должным образом. – defau1t

+0

Я попытался заменить мой код на тот, который вы создали, но он все еще не работает. – Eralph

0

я, наконец, получил это работает ...

<audio id="sound-notification"> 
    <source scr="beep.ogg" type="audio/ogg"></source> 
    <source src="beep.mp3" type="audio/mpeg"></source> 
</audio> 

Надеется, что это поможет любому.

+0

Как это работает, я бы не смог заставить его работать в моем браузере Safari. Windows 7 x64. –

+0

, пожалуйста, проверьте приведенный выше код, чтобы узнать, как его реализовать. – Eralph

+0

заключается в том, что работа над Safari 5.1 (windows 7) или (mac book) –

0

Это работает для меня, добавив звук щелчка на элементах во всех браузерах на Drupal:

var snd = new Audio(Drupal.settings["basePath"] + "sites/all/themes/your_theme/click.ogg"); 
    var sndSafari = new Audio(Drupal.settings["basePath"] + "sites/all/themes/your_theme/click.mp3"); 

    var is_safari = navigator.userAgent.indexOf("Safari") > -1; 

    jQuery('body a').click(function(){ 
     if(is_safari){ 
      sndSafari.play(); 
     }else{ 
      snd.play(); 
     } 
    }); 

Это дополнительная информация только в случае, если кто-то нуждается в этом:

Firefox 3.5+ >> Supports .ogg, .wav

IE9 + >> Поддержка .mp3

Chrome 6+ >> Supports .ogg, .mp3, .mp4

Safari 5+ >> Поддержка .mp3, .mp4, .wav

Opera 10.5+ >> Поддержка .ogg, .wav

Убедитесь, чтобы добавить свой (я использовал drupal api)