Android 용 자체 뮤직 플레이어를 만들려고합니다.MediaMetadataRetriever로 MetaData를 추출하면 예기치 않은 결과가 발생합니다.
목록의 경우 노래의 메타 데이터가 필요하므로 MediaMetadataRetriever
을 사용하여 추출하지만 검색자는 대부분의 노래 (~ 630 of 669)를 추출 할 수 없습니다. 내 PC 음악 소프트웨어에서는 메타 데이터가 표시되며 Windows 탐색기에서도 볼 수 있습니다. 노래의 속성을 열면 파일을 수정할 수 있습니다. 변경된 파일을 휴대 전화에로드하면 여전히 작동하지 않습니다. 그건 그렇고 : 만약 내가 전화로 다른 플레이어를 사용하면, 그것은 항상 메타 데이터를로드 할 수 있습니다.
MediaMetadataRetriever
은 버그가 있으며 추출을 위해 다른 라이브러리를 사용해야합니까, 아니면 잘못된 것을하고 있습니까?
This 질문과 관련되어 있지만 내 문제를 해결하는 데 도움이되지 않습니다.
이MediaMetadataRetriever lMetaData = new MediaMetadataRetriever();
lMetaData.setDataSource(mAbsolutePath);
mArtist = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
mTitle = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
mAlbum = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
mAlbumArtist = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST);
mGenre = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
mSongNumber = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
mYear = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);
if(mArtist == null)
mArtist = new String("");
if(mTitle == null)
mTitle = new String("");
if(mAlbum == null)
mAlbum = new String("");
if(mAlbumArtist == null)
mAlbumArtist = new String("");
if(mGenre == null)
mGenre = new String("");
if(mSongNumber == null)
mSongNumber = new String("");
if(mYear == null)
mYear = new String("");
태그에 다른 외부 라이브러리를 사용하기 때문에 문제가 해결됩니다. – Schamote