0
* m3u
-playlistfilesをUTF-8
でエンコードすると、QMediaPlaylist
で読み込みできません。 最初のエントリのパスが正しくロードされていません。QMediaPlaylistとUTF-8
最初のエントリのパスは、再生リストへのパスであるD:/D/Media/New folder/
で始まり、その後に
が続き、その後に* m3u-1で保存されたメディアファイルの相対パスが続きます。ファイル。
* m3uファイルにはANSI
が含まれています。これらの問題はありません。
この場合「ü」のような文字(2番目のエントリ)も正しくエンコードされません。
私のプレイリストパーサーをコーディングせずに修正する方法はありますか?
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QDirIterator it("D:/D/Media/New folder", QStringList() << "*.m3u", QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext())
{
it.next();
QMediaPlaylist currentPlaylist;
currentPlaylist.clear();
currentPlaylist.load(QUrl::fromLocalFile(it.filePath()));
currentPlaylist.setCurrentIndex(0);
int x = 1;
ui->textBrowser->append(it.fileName());
ui->textBrowser->append("-----");
while(currentPlaylist.mediaCount() > 0)
{
ui->textBrowser->append(QString::number(x) + QString(": ") + currentPlaylist.currentMedia().canonicalUrl().toString());
x++;
currentPlaylist.removeMedia(0);
}
ui->textBrowser->append("");
}
}
* m3uのコンテンツ
..\Musik\Mittelalter Party\Mittelalter Party Volume 1\Tanzwut - Meer.mp3
..\Musik\ASP\Humility\ASP - Küss mich (Chamber version).mp3
..\Musik\Disturbed\Ten Thousand Fists\Disturbed - Ten Thousand Fists.mp3
ありがとうございます。しかし、問題は私が後で自分のプログラムを公開するときにプレイリストの拡張子を変更することは期待できないということです。私のプレイリストは例えばMediaMonkeyで作成され、UTF8プレイリストを* m3uとして保存するようです。とにかく、ファイルのエンコーディングをチェックして、QMediaPlaylistに読み込むことができる仮想* m3u8のようなものを作成するのはおそらくありますか? – honiahaka10
あなたはおそらくプレイリストがUTF-8でエンコードされていると仮定して、常にm3uの一時コピーを作成して(そして拡張子をm3u8に変更して、QMediaPlaylistに渡すとUTF-8文字に対応できます) 。私はあなたが本当にそれ以上のことはできないとは思わない。 –
試したければいくつかのオプションがあります:http://stackoverflow.com/questions/910793/detect-encoding-and-make-everything-utf-8?rq=1、しかしそれはすべてですPHPとnot C++/Qt –