トップページ > 記事閲覧
mp3等の音楽ファイルのタグを取得したい
名前:判別式D 日時: 2019/03/02 18:10

タイトルにもある通り、mp3などの音楽ファイルのタグを取得したいです。 曲のタイトルやアーティスト、ジャケット画像などを取得することは可能でしょうか。 何かいい方法や関連する関数がございましたら、ご教授願います。
メンテ

Page: 1 |

Re: mp3等の音楽ファイルのタグを取得したい ( No.1 )
名前:管理人 日時:2019/03/03 15:38

mp3のタグ情報を取得する関数は無かったので追加しました よろしければこちらの関数を追加したバージョンをダウンロードしてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) 以下の関数を追加しました // MP3ファイルのタグ情報を取得する // FileName : mp3ファイルのパス // TitleBuffer, TitleBufferBytes : 曲名を代入するバッファの先頭アドレスとバッファのサイズ // ArtistBuffer, ArtistBufferBytes : アーティスト名を代入するバッファの先頭アドレスとバッファのサイズ // AlbumBuffer, AlbumBufferBytes : アルバム名を代入するバッファの先頭アドレスとバッファのサイズ // YearBuffer, YearBufferBytes : 作曲年を代入するバッファの先頭アドレスとバッファのサイズ // CommentBuffer, CommentBufferBytes : コメントを代入するバッファの先頭アドレスとバッファのサイズ // TrackBuffer, TrackBufferBytes : トラック情報を代入するバッファの先頭アドレスとバッファのサイズ // GenreBuffer, GenreBufferBytes : ジャンル情報を代入するバッファの先頭アドレスとバッファのサイズ // PictureGrHandle : ジャケット画像のグラフィックハンドルを代入する int型変数のアドレス int GetMP3TagInfo( char *FileName, char *TitleBuffer, size_t TitleBufferBytes, char *ArtistBuffer, size_t ArtistBufferBytes, char *AlbumBuffer, size_t AlbumBufferBytes, char *YearBuffer, size_t YearBufferBytes, char *CommentBuffer, size_t CommentBufferBytes, char *TrackBuffer, size_t TrackBufferBytes, char *GenreBuffer, size_t GenreBufferBytes, int *PictureGrHandle ) ; タグの情報は多岐に渡りますが、とりあえずメジャーな情報を取得できるようにしました 使用例は以下のようになります #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { char TitleBuffer[ 512 ] ; char ArtistBuffer[ 512 ] ; char AlbumBuffer[ 512 ] ; char YearBuffer[ 512 ] ; char CommentBuffer[ 512 ] ; char TrackBuffer[ 512 ] ; char GenreBuffer[ 512 ] ; int PictureGrHandle ; // ウィンドウモードで起動 ChangeWindowMode( TRUE ); // 画面サイズを設定 SetGraphMode( 1280, 720, 32 ) ; // DXライブラリを初期化 if( DxLib_Init() < 0 ) { return 0 ; } // フォントタイプを縁つきに変更 ChangeFontType( DX_FONTTYPE_EDGE ) ; // タグ情報を取得 GetMP3TagInfo( "test.mp3", TitleBuffer, sizeof( TitleBuffer ), ArtistBuffer, sizeof( ArtistBuffer ), AlbumBuffer, sizeof( AlbumBuffer ), YearBuffer, sizeof( YearBuffer ), CommentBuffer, sizeof( CommentBuffer ), TrackBuffer, sizeof( TrackBuffer ), GenreBuffer, sizeof( GenreBuffer ), &PictureGrHandle ) ; // ジャケット画像を描画 DrawGraph( 0, 0, PictureGrHandle, FALSE ) ; // タグ情報を表示 int Color = GetColor( 255,255,255 ) ; DrawFormatString( 0, 20 * 0, Color, "Title %s", TitleBuffer ) ; DrawFormatString( 0, 20 * 1, Color, "Artist %s", ArtistBuffer ) ; DrawFormatString( 0, 20 * 2, Color, "Album %s", AlbumBuffer ) ; DrawFormatString( 0, 20 * 3, Color, "Year %s", YearBuffer ) ; DrawFormatString( 0, 20 * 4, Color, "Comment %s", CommentBuffer ) ; DrawFormatString( 0, 20 * 5, Color, "Track %s", TrackBuffer ) ; DrawFormatString( 0, 20 * 6, Color, "Genre %s", GenreBuffer ) ; // キー入力待ち WaitKey() ; // ジャケット画像のグラフィックハンドルの削除 DeleteGraph( PictureGrHandle ) ; // DXライブラリの後始末 DxLib_End() ; return 0 ; } 因みにタグに埋め込まれている画像で対応しているのはDXライブラリでも対応している 画像フォーマットのみなので、仮に画像が埋め込まれていてもDXライブラリでは 対応していないフォーマットの場合は読み込めません あと、あまりテストできていないので正常にタグ情報を取得できない mp3ファイルが ありましたら、その mp3ファイルをご提供いただければと思います m(_ _;m
メンテ
Re: mp3等の音楽ファイルのタグを取得したい ( No.2 )
名前:判別式D (解決) 日時:2019/03/03 23:21

関数を追加してくれるとは。。。 本当にありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存