【发布时间】:2014-04-15 10:18:07
【问题描述】:
目前我正在编写自己的小型(基于网络的)音乐播放器。但我因为一些专辑而失败了。我将有关歌曲、专辑和艺术家的所有信息存储在 NoSQL 数据库中,如下所示:
{
"artist" : "Some artist",
"albums" :
[
{
"name": "Some album",
"info" :
{
"id" : ObjectId("534a7d66f1053d665015825b"),
"released" : "2013"
},
"songs" :
[
{
"name" : "Some song",
"file" : "music.mp3",
"time" : 219,
"id" : ObjectId("534a7d66f1053d665015825c")
}
]
}
],
"_id" : ObjectId("534a7d66f1053d665015825d")
}
现在我想向用户显示他拥有的所有相册。没问题。遍历所有艺术家,选择所有专辑,将它们展示给用户。如果没有编译,这会很好用。当我显示上述所有专辑时,用户会多次看到合辑,每个艺术家一次。
现在我查看了我当前的音乐播放器 - Banshee - 并看到它将所有合辑显示为来自“Various”的专辑。但它怎么知道?它不在 ID3 标签中。我唯一能想到的就是:如果超过一半的歌曲来自不同的艺术家->“Various”。这是解决方案吗?或者你们还知道别的吗?
【问题讨论】:
标签: algorithm mp3 audio-player id3