2015-03-25 28 views
1

我在C++中使用taglib從mp3文件更改元數據。我寫了一個很好的代碼。但是我發現了一個無法用taglib打開的MP3文件。Mp3文件爲空使用taglib(C++)

MP3文件有標籤。我可以用Vlc媒體播放器和MediaInfo以及explorer.exe查看它們。

我試試這個最小代碼,但它說文件無效。

TagLib::FileRef filer("file.mp3"); 
     if(filer.isNull()) 
      cout <<"null"; 

或驗證碼:

TagLib::MPEG::File fileMpeg("file.mp3"); 
if(!fileMpeg.isValid()) 
{ 
    cout << "file not valid"; 
} 

其他文件的工作,但不是一個。 感謝您的幫助。

+0

難道是特定的file.mp3多數民衆贊成在失敗,但其他人的工作?我曾經遇到過一次Winamp的問題,有一個mp3文件在掃描時導致它崩潰,其他一切都很好。 – 2015-03-25 02:03:09

+0

實際上,有一些mp3文件可以工作,而其他文件則爲空。我不知道爲什麼。但最多的MP3文件的工作。 – user3502626 2015-03-25 02:05:57

+0

我只是將不工作的mp3文件轉換爲新的mp3文件。這個新的mp3文件起作用,TagLib檢測到它具有id3v2標籤,但標籤相同,但另一個仍然爲空。 – user3502626 2015-03-25 02:11:44

回答

0

我發現問題,問題不是從文件,而是從文件名或目錄。 要解決此問題,我修改cont wchar_t*而不是const char*,因爲我試圖打開的文件包含ISO或unicode編碼的法語字符,但不包含ASCII。

相關問題