私はjQuery 1.5とjPlayer 2.0.0を使用しています。これが音楽を自動再生するという事実を無視してください。開始する前に十分な警告を提供します。ユーザーは大きなボタンを押してページを開始する必要があります。大きなSTOPボタンを提供します。
ページの準備ができてオーディオがロードされた後、オーディオ ファイルの再生を開始し、関数を呼び出したいと思います。
私は次の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で動作するようです
私はこれを読みました
「代わりに進行状況イベントを使用して、event.jPlayer.status.seekPercent === 100 であることを確認することをお勧めします。」
この投稿http://groups.google.com/group/jplayer/browse_thread/thread/9dc9736f9d6947bd?pli=1作成者による
何か提案はありますか?
編集
chrome と safari でこれが機能していないので、Firefox の新しいバージョン 3.6 でこれをテストしました (最初にこれを行うべきでした)。
Flash および HTML5 ブラウザーでサポートされる堅牢な jPlayer イベント
上記のリンクでは、作成者は event.progress を使用してブラウザの問題を回避することを提案していますが、これはブラウザ固有の問題であるとしか考えられません。
ただし、これについて明確にすることができれば幸いです。