playlist的随机播放算法

  • 一些约定

    一个playlist是指一个播放序列,其中的每个条目称为一个entry。每个条目对应一个计数器属性,称为counter,counter是实现这个算法的关键。

  • playlist初始化

    将一些entry序列导入playlist,每个entry对应的counter置为0。

  • 播放一个entry

    • 开始播放/播放一条新的entry时:如果是新的entry,则新entry对应的counter加1;如果仅仅是repeat同一首歌,则counter不变。
    • 播放中切换时:
      • 取出当前playlist中各个entry中最小的counter值,记为counter_min;
      • 取出所有counter值等于counter_min的entry,随机播放其中一条。
  • 添加一条entry到playlist

    • 取出当前playlist中各个entry中最小的counter值,记为counter_min;
    • 这条entry追加到playlist末尾;置这条entry的counter为counter_min。
  • 删除一条entry

    略。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s