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を使用してブラウザの問題を解決することを提案していますが、これはブラウザ固有の問題だとしか考えられません。
しかし、これについての説明を得るのはいいですね。