-
mp3 파일 id3v2 태그 분석C#/WPF 2017. 3. 10. 16:07
음악플레이어를 만드는데, 파일명보다는 "artist - title명" 이런식으로 표현하고 싶었다. 그래서 mp3파일의 태그가 어떠한 구조로 되어있는지 찾아보았다.
ID3 라는 태그인데, 최근에는 v2를 보통 쓴다. (version 2) 링크 그래서 붙여서 ID3v2로 쓴다.
이 태그를 통해 해당 mp3곡의 가수, 곡명, 앨범명, 저작권자, 트렉번호, 앨범아트 등을 알 수 있다.
taglib를 쓰는 것을 강력히 추천한다.
저처럼 그냥 분석하고 쪼개보는 것을 좋아하는 사람만 해보시길...
taglib 사용법
visual studio 2015 wpf 기준
상단메뉴 도구 -> NuGet 패키지 관리자 -> 솔루션용 NuGet 패키지 관리
-> 찾아보기 -> "taglib" -> 프로젝트 선택 -> 설치
TagLib namespace 에서 사용
더보기private void GetTagWithTagLib(string path) { TagLib.File tag = new TagLib.Mpeg.AudioFile(full); //if (System.IO.Path.GetExtension(full).ToLowerInvariant() == ".mp3") if (tag.Tag.IsEmpty == false) { //TagLib.File tag = new TagLib.Mpeg.AudioFile(full); artist = tag.Tag.FirstAlbumArtist; title = tag.Tag.Title; if (tag.Tag.Pictures != null && tag.Tag.Pictures.Length > 0) { TagLib.IPicture pic = tag.Tag.Pictures[0]; var ms = new System.IO.MemoryStream(pic.Data.Data); ms.Seek(0, System.IO.SeekOrigin.Begin); albumArt = new BitmapImage(); albumArt.BeginInit(); albumArt.StreamSource = ms; albumArt.EndInit(); } } }
위 코드를 참조하여 사용
위 코드는 C# WPF 를 기준으로 작성한 코드이다. C#에서는 TagLib의 내용은 다 같지만 albumart 를 설정하는 방식은 다를 수 있다. (winform과 wpf의 bitmap을 표현하는 클래스가 다름)
보통 mp3파일의 초반부에 id3v2 태그가 붙는데 이는 'I' 'D' '3' 로 되어있고, byte로 읽어서 확인할 수 있다. 만일 ID3가 안되어 있다면 ID3v2 태그가 없는 것으로 바로 음악 데이터가 있는 것이다.
추후 추가...
'C# > WPF' 카테고리의 다른 글
WPF FontDialog (0) 2017.07.18 WPF Font Family 한글 표시 (0) 2017.05.12 WPF MediaPlayer Volume 사용 (0) 2017.03.10 WPF Rolling Animation (슬롯머신 같은 애니메이션) (0) 2017.02.17 WPF 라디오 버튼 enum 바인딩(RadoButton Binding enum) (0) 2017.01.24 댓글