2014-10-09 1 views
1

MediaStore에서 동일한 앨범이 여러 행으로 분할되는 것 같습니다. 앨범의 트랙이 여러 디렉토리로 분리되어 있고 여러 개의 행이 서로 다른 경우 트랙이 모두 동일한 아티스트의 동일한 앨범에 있더라도 MediaStore.Audio.Media.ALBUM_IDMediaStore.Audio.Media.ALBUM_KEY 열에 대한 값이 없습니다.MediaStore에서 잘못된 값이 여러 개 있습니다 (단 하나의 값만 예상되는 경우)

예를 들어, 이러한 파일의 경로를 고려하십시오

/mnt/sdcard/X/a.mp3 
/mnt/sdcard/X/b.mp3 
/mnt/sdcard/X/c.mp3 
/mnt/sdcard/X/d.mp3 
/mnt/sdcard/Y/e.mp3 
/mnt/sdcard/Y/f.mp3 
/mnt/sdcard/Y/g.mp3 
/mnt/sdcard/Z/h.mp3 
/mnt/sdcard/Z/i.mp3 
/mnt/sdcard/Z/j.mp3 

공지 MP3 파일은 세 가지 다른 폴더, "X", "Y"로 구분하고, "Z"한다. 위의 모든 트랙의 앨범 제목은 동일합니다. 그들은 모두 같은 아티스트의 앨범입니다.

그러나 데이터를 MediaStore.Audio.Media.ALBUM_IDMediaStore.Audio.Media.ALBUM_KEY에 대해 검색 할 때 각 폴더마다 각각 다른 세 개의 그룹이 표시됩니다. 모두 ALBUM_IDALBUM_KEY을 반환해야하지만 일치하지는 않습니다. ALBUM_ID 및은 및 h.mp3의 것과는 다르지만, b.mp3, c.mp3d.mp3의 것과 동일하다.

그리고 모두 동일한 폴더에 병합 할 때만 업데이트되어 동일한 ALBUM_IDALBUM_KEY을 공유합니다.

Google의 버그입니까? 의도적 인 설계입니까?

+0

Google에서 쿼리 빌더가있는 TheoKlink의 Playlist Manager 새 버전을 방금 출시했습니다. 자신의 검색어 (재생 목록)를 작성하면 문제를 식별하는 데 도움이 될 수 있습니다. 또는 /data/data/com.android.providers.media/databases/external.db 파일을 잡고 SQL 도구를 사용하여 PC의 음악 레코드/데이터베이스 구조를 탐색하십시오. 나는 RazorSQL을 사용한다. 경로 이름이있는 유일한 장소는 _DATA 필드에 있으므로 상태가 여러 개일 것으로 예상하지는 않습니다. ALBUM_ID – Theo

+0

앨범 테이블을 살펴 보았습니다. 아마도 ALBUM_KEY 필드가 문제 일 것입니다. 읽을 수없는 정보가 있습니다. ALBUM_ID가 아닌 ALBUM_ID 만 사용하십시오. ALBUM_KEY는 각 레코드마다 다릅니다. – Theo

+0

"ALBUM_KEY 필드가 문제 일 수 있습니다. 읽을 수없는 정보가 있습니다. ALBUM_KEY가 아니라 ALBUM_KEY 만 사용하십시오 .ALBUM_KEY는 각 레코드마다 다릅니다."- 아니, 내 발견에 따르면 ALBUM_ID가 앨범은 원래 게시물에서 설명한대로 여러 폴더로 분할됩니다. 원래 게시물에 제공된 예제의 경우 동일한 앨범에 대해 3 개의 고유 한 ALBUM_ID 값이 있습니다. – RestInPeace

답변

0

나는 데이터베이스를 테스트했다 : select * 앨범에서 ORDER BY 앨범 ASC; 예, 태그 지정이 잘못되었다고 생각되는 여러 개의 키가 있습니다. 그래서 한 앨범 인 Paolo Nuttine, Caustic Love를 선택하고 Audiotagger를 사용하여 태그를 다시 실행하고 장치를 다시 스캔 한 다음 데이터베이스를 꺼내서 Razorsql을 사용하여 쿼리했습니다. 테이블 앨범은 여전히 ​​Caustic Love에 대한 여러 개의 키를 보여 주지만 album_info는 올바르게 표시됩니다. 폴더간에 다른 앨범을 분할했지만 설명 된 동작을 보지 못했습니다. 불빛을 흘릴 수 없어서 죄송합니다.

관련 문제