Один баг я добавил в трекер:
https://bugreports.qt-project.org/browse/QTBUG-40314Если коротко, то в цикле под андройдом треки не проигрываются при помощи
setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
Но внезапно я словил еще ряд багов, которые пока что не придумал как запихать в трекер, мало того, трекер - это долго, а было бы здорово, если кто-нибудь подсказал как их разрулить.
Есть файл:
https://cloud.mail.ru/public/e864b36556e3/easy.wavQMediaPlayer отказывается с ним работать - не проигрывает, а в окно отладки валит ошибками типа "плохой файл". В других проигрывателях файл проигрывается нормально. Было бы здорово, если кто-нибудь помог (желателньо проверив предварительно баг у себя) добавить это в багтрекер - у меня багтрекер вываливает ошибку при загрузке файла xD.
Проигрываю так:
m_player = new QMediaPlayer(this);
m_playlist = new QMediaPlaylist();
m_player->setPlaylist(m_playlist);
m_playlist->addMedia(QUrl::fromLocalFile("/path/easy.wav"));
m_playlist->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
m_player->play();
Наконец, есть еще один баг, с которым совсем не знаю как бороться. В программе создаю несколько объектов QMediaPlayer, затем, один из них разрушаю. В момент когда заканчивается трек у другого проигрывателя получаю неотлаживаемую ошибку - она происходит в потоке типа wavparser (который создается где-то в дебрях QMediaPlayer).
По последнему багу я экспериментировал. Если объект QMediaPlayer один - проблем нет. Обычно я проверял на двух объектах, но для проверки создал их штук 40, получил более развернутое описание в окне отладчика, в котором сообщалось о гонке потоков (внезапно) и предлогалось делать потокам join. Как сделать join потокам, которые мне не доступны вобще никак, я не придумал, сам объект QMediaPlayer работает в текущем потоке, но порождает дочерний.
Неужели никто не проигрывал одновременно несколько треков с QMediaPlayer?