如何使用TagLib-C ++从MP3文件中读取XingHeaders,VBRIHeaders和sampleCount

时间:2016-09-20 10:48:13

标签: c++ qt audio taglib

有没有办法确定音频文件是否具有可变比特率,并通过LibTag提取sampleCount()?我需要找出'因为Qt QMediaPlayer类错误地计算具有可变比特率的音频文件持续时间,并且唯一的纠正方法是发现音频是否具有可变比特率并将长度除以sampleCount()持续时间。

由于文档TagLib有点令人困惑,我设法只创建了fileref

void MainWindow::playerOnMediaStatusChanged(QMediaPlayer::MediaStatus status)
{
if (status == QMediaPlayer::BufferedMedia) {     
QString mediafile = playlist->currentMedia().canonicalUrl().toString();
TagLib::FileRef fr(reinterpret_cast<constwchar_t*>(mediafile.utf16()),true);
        //…
    }
}

但是如果音频具有可变比特率及其sampleCount()

,我不知道如何发现

是的,我知道有这个topic,但与Sharp语言相关

你能帮助我吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您需要使用let _, img = capture(fun () -> R.plot_igraph grpa |> R.show ) (*** include-value:img ***) 才能访问TagLib::MPEG::File。这是一个例子:

XingHeader