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