我正在尝试使用“BASS.dll”(通过 bass.lib 和 bass.h)从 mp3 文件中读取 ID3v1 标签。
它工作正常,直到 .mp3 文件的标题(或艺术家)有 30 个字符。
相反
Happy Times (Feat. Margaux Bos
,我得到Happy Times (Feat. Margaux BosEmigrate
了Emigrate
添加(那是艺术家标签)。
如何在不添加艺术家标签的情况下使其正常工作?
这是我的源代码:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "bass.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
BASS_Init(-1, 44000, 0, 0, 0);
if(OpenDialog1->Execute())
{
HSTREAM stream = BASS_StreamCreateFile(false, OpenDialog1->FileName.c_str(), 0, 0, 0);
TAG_ID3 *tags = (TAG_ID3*)BASS_ChannelGetTags(stream, BASS_TAG_ID3);
Edit1->Text = tags->title;
}
}