2017-01-05 12 views
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(""); 
    } 
} 

enter image description here

* 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 

答えて

1

ウィキペディアはUTF-8エンコードされたプレイリストが.m3u8拡張子を持つべきであると述べています。ファイル拡張子を.m3u8に変更しようとしましたか?

+0

ありがとうございます。しかし、問題は私が後で自分のプログラムを公開するときにプレイリストの拡張子を変更することは期待できないということです。私のプレイリストは例えばMediaMonkeyで作成され、UTF8プレイリストを* m3uとして保存するようです。とにかく、ファイルのエンコーディングをチェックして、QMediaPlaylistに読み込むことができる仮想* m3u8のようなものを作成するのはおそらくありますか? – honiahaka10

+1

あなたはおそらくプレイリストがUTF-8でエンコードされていると仮定して、常にm3uの一時コピーを作成して(そして拡張子をm3u8に変更して、QMediaPlaylistに渡すとUTF-8文字に対応できます) 。私はあなたが本当にそれ以上のことはできないとは思わない。 –

+0

試したければいくつかのオプションがあります:http://stackoverflow.com/questions/910793/detect-encoding-and-make-everything-utf-8?rq=1、しかしそれはすべてですPHPとnot C++/Qt –