使用FMOD返回mp3文件的标题,艺术家等?

时间:2015-10-07 04:48:21

标签: c++ fmod

我正在尝试使用旧的fmodex获取当前正在使用FMOD播放的音频文件的标题,艺术家和专辑名称。经过一些谷歌搜索后,我发现我应该阅读文件的“标签”。提供了一些样板代码,但我感觉它已经过时了,因为它没有按预期工作。 我的代码用于返回根据样板文件改编的歌曲标题如下:

string FmodPlayer::getSongTitle()
{
    FMOD_TAG tag;
    char *title = NULL;
    audiostream->getTag("FILE", 0, &tag); //audiostream is whatever song is currently playing

    if (tag.type == FMOD_TAGTYPE_ID3V2)
    {
        audiostream->getTag("TIT2", 0, &tag);
        title = (char *)tag.data;
        //return ("ID3v2");
    }
    else
    {
        audiostream->getTag("TITLE", 0, &tag);
        title = (char *)tag.data;
        //return ("Wasn't an ID3v2");
    }
    string songName(title);
    return songName;
}

虽然这会返回某些内容,但它不是人类可读的,并且显示为大约5个钻石问号或随机字符。无论我将其作为字符串还是字符数组返回,都是一样的 还应该注意的是,我是FMOD的新手,因此我不知道自己在做什么。

您会注意到我还包含一些注释掉的返回语句,以测试程序是否将标记视为ID3v2标记。它总是显示mp3文件不包含ID3v2标签,无论我尝试了多少mp3。我不知道这意味着什么,我的MP3是否都是错误的,或者程序是否解释错误。

所以,基本上,我在这里看不到什么?如何让它返回一个人类可读的歌曲名称?一旦我将歌曲标题记下来,我相信对于艺术家,专辑等也会很容易做到这一点。

0 个答案:

没有答案