2011-02-11 18 views
3

jQuery 1.5とjPlayer 2.0.0を使用しています。音楽を自動再生することを無視してください。開始前に十分な警告を出す予定です。大きいボタンを押してページを開始すると、大きなSTOPボタンが表示されます。jplayerで進行状況イベントを取得する方法

オーディオファイルの再生を開始し、ページの準備が整ってオーディオがロードされた後に関数を呼び出すことができます。

私は以下のjavascriptを持っています(もっとよく理解できるようにコードを変更しました)。

function FemeMusic() { 

    FemeMusic.prototype.addMusic = function(actionAfterMusic) { 
     $("#jp").jPlayer({ 
      ready: function() { 
       var jPlayerElement = $(this); 
       jPlayerElement.jPlayer('setMedia', { 
        mp3: 'aSongByJamesBlunt.mp3' 
       }); 
       jPlayerElement.bind($.jPlayer.event.progress, 
       function(event) { 
        if (event.jPlayer.status.seekPercent === 100) { 
         jPlayerElement.jPlayer("play"); 
        } 
        if (actionAfterMusic) { 
         actionAfterMusic.call(); 
        } 
       }); 
      }, 
      swfPath: "/flash", 
      preload: "auto" 
     }); 
    } 
} 

私は上記のコードをトリガーするこの機能を持っています。

$(document).ready(function() { 
    var femeMusic = new FemeMusic(); 
    femeMusic.addMusic(killMyself); 
}); 

私の代わりに$ .jPlayer.event.progressのif文なしに同じコードが、$ .jPlayer.event.loadeddataイベントとを使用していたし、それは一部のブラウザではうまくいきましたが、時に互換性がありません。それはイベントを発生させないので、フラッシュを使用することになります(また、私はFirefox 3.5でそれに問題がありましたが、なぜわかりません)。上記

は、私が読んFirefoxで動作しているようです。この

「私はあなたの代わりにprogressイベントを使用して確認してくださいことを示唆している: event.jPlayer.status.seekPercentの=== 100」

この投稿でhttp://groups.google.com/group/jplayer/browse_thread/thread/9dc9736f9d6947bd?pli=1作成者による

いずれかの提案がありますか?


編集

はChromeとSafariでこの作業を持っていないた私は(私が最初の場所で行われているはず)のFirefoxの新バージョン3.6でこれをテストし、期待どおりに働いていました、ドキュメントevent.progressにIDとして説明しているという事実にもかかわらず:FlashとHTML5のブラウザでサポートされている

堅牢jPlayerイベント

上記のリンクでは、作成者がevent.progressを使用してブラウザの問題を解決することを提案していますが、これはブラウザ固有の問題だとしか考えられません。

しかし、これについての説明を得るのはいいですね。

答えて

3

jPlayerの生みの親から:

メディアがバッファリングされた後、だからここにあなたの目標は、自動再生するのですか?

短い答えが必要な場合は、忘れてください。 xブラウザのバッファリングは、鉱山である フィールドです。あなたが見つけたものを無視する人もいます。ちょうどメディアを設定して再生してください。

本当に試してやりたいのであれば。その後、 の再生は、がmedia.load()よりも優れたx-browserであるため、つまり の操作がそれほど変化しないため、再生が一時停止すると役立ちます。 iOS Safariは完全に再生を無視するだろう しかし。ユーザーは 操作を開始するもの、つまり再生ボタンをクリックする必要があります。

最後の点は自動再生の試行に適用されるため、 が再生ボタンであることを確認してください。 jPlayerインターフェイスは、ブラウザイベントからのフィードバック、つまりストールした ではなくiOSに対応します。

1

私は、ほとんどのブラウザでflashとhtml5バックエンドのprogressイベントに問題がありました。私が見る限り、timeupdateイベントははるかに良く機能しています。

関連する問題