2017-03-22 10 views
0

私は働いているJplayerを持っています。私は皆の便宜のためにここでそれを共有することを誇りに思っています。jplayer.orgクッキーにプレイリストを保存する

プレイリスト内に1つのトラックを追加すると、プレイリストがクッキーに記憶されます。ここでは、作業コードは次のとおりです。

// PLAY SINGLE SONG 
// el delegation is needed because songs are dynamically loaded via ajax datatables 
$(document).on("click", '.playable', function(el) { 
    var title = $(this).data("title"); 
    var artist = $(this).data("artist"); 
    var mp3 = $(this).data("mp3"); 
    var poster = $(this).data("poster"); 
    myPlaylist.add({ 
     title: title, 
     artist: artist, 
     mp3: mp3, 
     poster: poster 
    }, true); /* true makes it play on load */ 
}); 

Cookieの保存は、標準jplayer機能を使用して、ここでトリガーされます。

$("#jquery_jplayer").bind($.jPlayer.event.play, function(el) { 
    Cookies.remove('jp_playlist'); 
    Cookies.set('jp_playlist', JSON.stringify(myPlaylist)); 
}); 

しかし、私はまた、ボタンはそれぞれの曲をマップし、それを追加した、ALL ADD持っていますプレイリスト:

クッキーは設定されておらず、プレイリストはページの再読み込み時に保持されません。 私は警告します(JSON.stringify(myPlaylist))、すべてが正常に表示されます。 myPlaylist.play(current)は、バインド($ .jPlayer.event.play)とCookieストレージを強制する最後の2行をトリガーしないようです。私もbind.event.playをトリガーするかどうかテストするために、その行を削除して "true"を入れようとしましたが、うまくいきませんでした。

ご利用いただきありがとうございます。

答えて

0

Cookieの保存制限でした。私は単にのlocalStorageを使用して限界、例えば:

localStorage.setItem('jp_playlist', JSON.stringify(myPlaylist)); 
localStorage.removeItem('jp_playlist'); 

代わりに

Cookies.set('jp_playlist', JSON.stringify(myPlaylist)); 
Cookies.remove('jp_playlist'); 
を迂回しました
関連する問題