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);
}
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Проблема решена обновлением кодеков...