2013-12-05 4 views
5

EDIT: Я разместил это в Wordpress, но некоторые администраторы думают, что он здесь, потому что они говорят, что это проблема на стороне клиента, но я не думаю, что это потому, что он работает скриптом как есть (на сайте, отличном от Wordpress), но только выдает ошибку DOM Exception 11 при использовании сценария на сайте Wordpress и только в определенных браузерах. Тот же скрипт работает под Wordpress, но только в Chrome.HTML5 audio DOM Exception 11 error with currentTime = 0


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

Он отлично работает, но только на Chrome (Mac). В Firefox или Safari (текущие версии) скрипт бросает ошибку DOM.

Здесь ошибка:

INVALID_STATE_ERR: DOM Exception 11: Была сделана попытка использовать объект, который не является, или больше не, годны к употреблению.

Линия, которая производит ошибку является: html5audio.currentTime=0

В приведенной ниже сценарий отлично работает на браузерах у меня возникли проблемы с в не Wordpress сайта. http://www.javascriptkit.com/script/script2/soundlink.shtml#current

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

var html5_audiotypes={ 
    "mp3": "audio/mpeg", 
    "mp4": "audio/mp4", 
    "ogg": "audio/ogg", 
    "wav": "audio/wav" 
} 

function audio(sound){ 
    var html5audio=document.createElement('audio') 
    if (html5audio.canPlayType){ //check support for HTML5 audio 
     for (var i=0; i<arguments.length; i++){ 
      var sourceel=document.createElement('source') 
      sourceel.setAttribute('src', arguments[i]) 
      if (arguments[i].match(/\.(\w+)$/i)) 
       sourceel.setAttribute('type', html5_audiotypes[RegExp.$1]) 
      html5audio.appendChild(sourceel) 
     } 
     html5audio.load() 
     html5audio.playclip=function(){ 
      html5audio.pause() 
      html5audio.currentTime=0 
      html5audio.play() 
     } 
     return html5audio 
    } 
} 
+0

Связанный: http://stackoverflow.com/questions/9563887/setting- html5-audio-position – megawac

+0

Этот пост не имеет ничего общего с моим вопросом. Я не смотрю, как установить аудио в положение. – Jason

ответ

0

Я тестировал на Win7/Chrome, IE, FF - последние версии. Все они работают. Это может быть проблема совместимости с браузером. К сожалению, HTML5 Audio API по-прежнему не очень зрелый. Попробуйте это:

audio.pause(); 
audio.src = audio.src; 

Если это не помогает, возможно, отправить отчет об ошибке в HTML5 отслеживания проблем, если они не имеют один уже.

Похожие темы: html5 audio currentTime doesn't work

4

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

У меня была аналогичная проблема - в моем случае код работал на Chrome , но ничего больше, насколько я мог судить, но это не сайт Wordpress. После некоторого экспериментирования, я понял, что ошибка только произошла, если CURRENTTIME уже был 0. Таким образом, решение было довольно просто:

html5audio.pause(); 
if (html5audio.currentTime != 0) { 
    html5audio.currentTime=0; 
} 
html5audio.play(); 

Я надеюсь, что кто-то помогает.

+0

Знаете ли вы, какую версию Chrome вы использовали в момент возникновения проблемы? – BMiner

+0

У меня была проблема на iPhone 5, Safari. Это фиксировало это. –

1

Я столкнулся с той же проблемой. Проблема недействительных государства был замечен только в IE браузер, и это было только тогда, когда CURRENTTIME = 0

Это работает для меня:

if (!audio.currentTime) { 
    audio.currentTime=0; 
} 
+0

Это очень похоже на [ответ Таиланда] (http://stackoverflow.com/a/28945952). –

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