2013-10-14 3 views
1

аудио файл не может играть в Safari .. Это дает ошибкуTypeError: не определено»не является функцией (оценка 'myAudio.play()')»

TypeError: 'undefined' is not a function (evaluating 'myAudio.play()') 

Вот мой HTML-код..

<audio> 
    <source src="audio/horse.ogg" type="audio/ogg"> 
    <source src="audio/horse.mp3" type="audio/mpeg"> 
    Your browser does not support the audio element. 
</audio>  

Вот мой JavaScript код

myAudio = document.getElementsByTagName('audio')[0]; 
if (typeof myAudio.loop == 'boolean'){ 
    myAudio.loop = true; 
} 
else{ 
    myAudio.addEventListener('ended', function() { 
    this.currentTime = 0; 
    this.play(); 
    }, false); 
} 
myAudio.play(); 

у меня есть только один аудио тегов в HTML.

+0

похоже, что вы использовали это «в». Это не то же самое, что вне объявления функции. попробуйте сделать «self = this»; просто снаружи и ссылайтесь на «self.play()» вместо this.play(). Я плохо знаю аудио-объект. Предполагаете ли вы дать «это» в данные события? Перечитывайте свои намерения вместо чистого кода. вы хотите перезапустить. Использовать «myAudio.play()» вместо «this.play()»? –

+0

Кажется, что ** document.getElementsByTagName ('audio') [0] ** возвращает значение null. Является ли ваш Javascript определяемым над кодом HTML? Он должен быть ниже вашего HTML, чтобы найти элемент аудио. – levi

+0

Этот код работает в Chorme, Opera, Firefox, Konquer .... –

ответ

0

У меня была аналогичная проблема на моем компьютере с Windows.

Итак, чтобы протестировать, я создал простой HTML-файл с одной красной большой точкой и щелчком, который будет воспроизводить аудио. Он работал над всеми браузерами, совместимыми с HTML5, ИСКЛЮЧАЕТ сафари. Я провел целый день и попробовал более 100 различных решений, чтобы заставить его работать на сафари, но не повезло.

В конце я установил QuickTime (последняя версия) и решил 50% проблемы.

Rest 50% проблемы была связана с структурой кода.

<audio id="audio1" src="audio/guestProfile.ogg" type="audio/ogg" ></audio> 
<audio id="audio1" src="audio/guestProfile.mp3" type="audio/mpeg" ></audio> 

Ему не понравился вышеуказанный код. Так что мне пришлось изменить его на следующее:

<audio id="audio1"> 
    <source src="audio/guestProfile.ogg" type="audio/ogg"> 
    <source src="audio/guestProfile.mp3" type="audio/mpeg"> 
    Your browser does not support the audio tag. 
</audio> 

Это не может быть аккуратным & идеальным решением. Но это сработало для меня.

0

Он никогда не будет работать в Windows Safari, потому что последний Safari для Windows был выпущен в 2010 году. Именно по этой причине теги HTML5: или <video> не работают в Windows Safari. Test yourself

Смежные вопросы