3

私は audio.js と呼ばれる javascript shim を使用して、Flash フォールバックで HTML5 オーディオを提供しています。現在、すべての最新のブラウザーと Android および iO で動作していますが、修正できないように見える問題が 1 つあります。それは、Firefox または Android で、トラックの終了時に発生するコールバックを使用すると、オーディオ。再生の最後でファイルがスタックします。

このプロジェクトは、各トラックの終了時に発生するコールバックに依存するロジックを持つスライドショーです。コールバックを使用しようとしている方法は次のとおりです。

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

これを解決する方法についての洞察は非常に高く評価されます。

編集: ここに audio.js API へのリンクがあります: http://kolber.github.com/audiojs/docs/

4

1 に答える 1

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
}
于 2012-05-13T16:35:05.353 に答える