Russian Qt Forum

Qt => Мультимедиа => Тема начата: r04 от Июль 21, 2014, 12:55



Название: Баги QMediaPlayer
Отправлено: r04 от Июль 21, 2014, 12:55
Один баг я добавил в трекер: https://bugreports.qt-project.org/browse/QTBUG-40314
Если коротко, то в цикле под андройдом треки не проигрываются при помощи
Код:
setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);

Но внезапно я словил еще ряд багов, которые пока что не придумал как запихать в трекер, мало того, трекер - это долго, а было бы здорово, если кто-нибудь подсказал как их разрулить.

Есть файл: https://cloud.mail.ru/public/e864b36556e3/easy.wav
QMediaPlayer отказывается с ним работать - не проигрывает, а в окно отладки валит ошибками типа "плохой файл". В других проигрывателях файл проигрывается нормально. Было бы здорово, если кто-нибудь помог (желателньо проверив предварительно баг у себя) добавить это в багтрекер - у меня багтрекер вываливает ошибку при загрузке файла 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?