2012-05-13 1 views
3

Я использую javascript shim, называемый audio.js, для подачи звука HTML5 со вспышкой. Я работаю сейчас во всех современных браузерах и Android и iOs, но есть одна проблема, которую я просто не могу исправить, и это то, что в Firefox или Android, когда я использую обратный вызов, выпущенный после окончания дорожки, я не могу воспроизвести аудио. Файл застревает в конце воспроизведения.javascript shim for HTML5 Проблемы со звуком

Проект представляет собой слайд-шоу, логика которого зависит от обратных вызовов, которые запускаются, когда заканчивается каждый трек. Вот как я пытаюсь использовать функцию обратного вызова:

audio.trackEnded=function() { 

    // operate on the DOM 
    } 

и вот бит от audio.js API:

trackEnded: function(e) { 
     this.skipTo.apply(this, [0]); 
     if (!this.settings.loop) this.pause.apply(this); 
     this.settings.trackEnded.apply(this); 
    } 

у меня не было никакой удачи углубляясь в API, чтобы попытаться выяснить как сбросить аудиофайл. Все, что я знаю, это то, что независимо от того, что я ввел в функцию trackEnded, в браузерах, которым нужна вспышка, файл зависает в конце, а когда я удаляю эту функцию, звук сбрасывается просто отлично. И пытаясь работать с самим аудиоэлементом, установив currentTime = 0; ломает все это.

Вот демо аудио замораживания, который вы можете увидеть после нажатия в слайд-шоу:

http://www.jontakiff.com/audio-playback/skeleton.html

Любое понимание того, как я мог бы идти о решении это было бы супер цениться.

Edit: вот ссылка на audio.js API: http://kolber.github.com/audiojs/docs/

+0

Вы кодируете в чистом javascript, или вы используете библиотеку, такую ​​как jQuery, dojo или Mootools? –

+0

Я использую jQuery. – johnnyb

ответ

0

Извините за комментарий, просто взглянул на коде страницы. Вы можете попробовать JQuery Connect plugin.here некоторые ссылки:

http://beyondrelational.com/modules/2/blogs/61/posts/11231/what-is-jquery-connect-how-to-use-jquery-connect.aspx

http://archive.plugins.jquery.com/project/jqConnect

и код JQuery будет выглядеть следующим образом:

$.connect(audio,'trackEnded',window,window.trackEnded); 

обратите внимание, что вам нужно использовать trackEnded как регулярная функция в формате:

function trackEnded(){ 
    //code here 
} 
+0

Решенный! Приятель указал мне на ответ в API. – johnnyb

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

  • Нет связанных вопросов^_^