2014-04-15 8 views
1

나는 현재 자신 만의 작은 (웹 기반) 음악 플레이어를 쓰고 있습니다. 하지만 일부 앨범 때문에 실패하고 있습니다. 나는이처럼되는 NoSQL 데이터베이스에 노래, 앨범 및 아티스트에 대한 모든 정보를 저장 : 앨범이 "Various Artists"의 것임을 알 수있는 방법

{ 
    "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)를보고 "모든 것"의 앨범으로 모든 편집본을 보여줍니다. 그러나 어떻게 알 수 있습니까? ID3 태그에 없습니다. 내가 생각할 수있는 유일한 생각은 다음과 같을 것입니다. 노래의 절반 이상이 다른 아티스트의 노래 인 경우 -> '다양 함'. 이것이 해결책인가? 아니면 너희들이 다른 것을 알고 있니?

답변

1

고려할 사항 :

  • 내가 가장 좋은 방법은 대부분의 선수가 이해 ID3Tag을 사용하는 것입니다 생각합니다. ID3에는이 작업을 수행하는 태그가 실제로 포함되어 있지 않지만 여기에 사용할 수있는 여러 태그가 있습니다. 설명은 this answer을 참조하십시오.
  • 제안하는 알고리즘이 가장 효과적 일 수 있지만 두 가지 경우가 있습니다.
    1. 아티스트의 앨범이지만 많은 "feat."(예 : Featuring Luciana
    2. 편집을 두 개 또는 세 예술가를 포함하지만 여전히 그것이 앨범