QMediaPlayer переключение видео.
C++, QMediaPlayer, QMediaPlaylist, QMediaPlaylist, QGraphicsVideoItem
Помогите разобраться пожалуйста!
1)Я делаю QMediaPlayer с QMediaPlayList
2)В QMediaPlayer player ставлю:
VideoItem* item (унаследован от QGraphicsVideoItem )
player.setVideoOutput(item);
3) Добавляю на сцену item
К QMediaPlayer сигналы прикрутил, запускаю видео, когда оно говорит "MediaLoaded".
На первый взгляд вроде все хорошо, видео играет. Но при переключении видео, иногда возникает баг. Звук и видео не воспроизводится. Но статус у QMediaPlayer говорит "PlayingState" и медиа статус "BufferedMedia" , как бы намекает, что он не причем. Такое случается,примерно, при каждом 4-10 переключении.
Если я уберу строчку с player->setVideoOutput(item); Баг частично исчезает, звук переключается корректно(звук играет всегда), но видео - нет(естественно).
Вот пример(скриншоты), стрелочками переключаешь и видео может по какой то причине не заиграть...
Любые идеи пожалуйста 😢
P.S
Вот что я переопределил в VideoItem:
QRectF VideoItem::boundingRect() const
{
return QRectF(posX(),posY(),m_size.width(),m_size.height());
}
void VideoItem::paint(QPainter
painter, const QStyleOptionGraphicsItem
option, QWidget *widget)
{
painter->setViewport(QRect(boundingRect().x(),boundingRect().y(),std::ceil(boundingRect().width()),std::ceil(boundingRect().height())));
QGraphicsVideoItem::paint(painter,option,widget);
}
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
- molni99
- 26 жовтня 2024 р. 08:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
- molni99
- 26 жовтня 2024 р. 08:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20бали,
- Рейтинг балів-10
Проблема решена обновлением кодеков...