Я создаю видеоплеер, и мне нужно нарисовать поверх него несколько полигонов. Я использую QGraphicsScene для его создания, и мне нужно обновлять многоугольники на экране после каждого кадра. В настоящее время я использую QMediaPlayer в паре с QGraphicsVideoItem для его создания. Проблема, с которой я столкнулся, заключается в том, что QMediaPlayer не имеет сигнала, который активируется в каждом кадре. У него есть positionChanged (), но он срабатывает только раз в секунду.
Я пробовал использовать QMovie, поскольку он отправляет обновления для каждого кадра, но ничего не отображает. Это код, который я использовал для реализации этого.
video_view = QGraphicsView()#view to hold video
video_item = QGraphicsVideoItem()#video item for scene
video_scene = QGraphicsScene()#scene for Qgraphics view
video_view.setScene(video_scene)
label = QLabel()
movie = QMovie(self.video_paths[index]) #contains file path
label.setMovie(movie)
video_scene.addWidget(label)
self.vlayout_main_video.addWidget(video_view)
Я использую видеофайл в формате .avi размером 72 МБ.
Я был бы очень признателен, если бы кто-нибудь указал мне в правильном направлении, как я могу это сделать. В настоящее время я использую PyQt5.
Спасибо