質問

私はfoobar2kのように私のオーディオプレーヤーのための「シャッフルアルバム」のアルゴリズムを必要とします。問題があるので、私はトラックのリストを持って同じアルバムとトラックがすべて隣接しているように、いくつかの基準に従ってソートされました。今、私はそれ以外の場合は、次のランダムアルバムの最初のトラックに移動し、それを再生し、次のトラックが同じアルバムからのものである場合、ある「シャッフルアルバム」モードでプレイリストから曲を再生できるようにする必要があります。ユーザーは、前のトラックを再生したい場合は、同じことが、後方を行います。質問がされるように:どのように私は、以前のアルバムは何であったかを知っていますか?私は実際にプレイしたアルバムの履歴を保持したい、または別のリストを保持しません。

現在、私は、現在よりも小さい最大のシャッフルインデックスと現在よりも大きな最小のシャッフルインデックス付きのトラックを見つけることによって、前と次の曲を見つけることができるように、各トラックのランダムシャッフルインデックスを与えることで、通常のシャッフルモードを実装しています。しかし、それはシャッフルアルバムモードでは動作しません。これで缶誰かの助けを私に?

サンプル入力:

Track 1, Album A
Track 2, Album A
Track 1, Album B
Track 2, Album B
Track 3, Album B
Track 1, Album C
Track 2, Album C
Track 3, Album C
ランダムアルバムからの最初のトラックは、LETの言う、トラックを選択しなければならないので、レッツ言う現在のトラックがトラック1で、アルバムA.次のトラックがトラック2になり、アルバムA.次のトラックは、同じアルバムからのものではない1それは通常のシャッフルモードであるかのように、私が今やっているアルバムC.は、次のトラックを選択された後、このように私はこのアルバムに来たところから情報を失う、そのアルバムの最初のトラックに行きます。ユーザーは、前のアルバムに行きたいときSO、私は私がそこに着いたどのように何の情報も持っていません。質問が明確になり希望ます。

ありがとうございます。

役に立ちましたか?

解決

あなたは、インデックスのアルバムにあなたのシャッフルインデックス技術を再利用することができます。今、トラックインデックスは、(アルバムシャッフルインデックス、トラックPOS)のペアです。ナビゲートするために、インクリメント/デクリメントトラックPOS。それは範囲外になった場合、アルバムのインデックスを更新します。

あなたは歴史を保っていない再考すべき、と述べました。それはあなたが戻ってはるかに高速のアルバムの数が多いをスキップ聞かせます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top