Qt Multimedia: ¿Existe una forma de implementar la reproducción de video en bucle sin interrupciones en pyside6?
Estoy intentando hacer un bucle de video en el fondo de mi aplicación Pyside6, actualmente lo estoy implementando a través de QML.
Todo funciona bien hasta ahora, pero he notado que el reproductor de medios borra la pantalla por un momento antes de repetir el video.
He visto que era posible solucionar este problema usando una propiedad llamada “flushMode” en el antiguo Qt5 QtMultimedia, pero dicha propiedad parece haber desaparecido en Qt6 (o tal vez simplemente no está implementada todavía, no lo sé).
Me preguntaba si hay alguna otra forma de hacer un bucle de video continuo en QtMultimedia 6.2 (usando QML, ya que mi aplicación está ejecutándose en Python).
Esto es lo que tengo hasta ahora (el reproductor de medios está separado de la aplicación principal por razones):
import QtQuick
import QtMultimedia
Rectangle {
id: playVid2
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.rightMargin: 0
anchors.leftMargin: 0
anchors.bottomMargin: 0
anchors.topMargin: 0
MediaPlayer {
id: mpVid2
audioOutput: AudioOutput{}
videoOutput: voVid2
source: "media/video/2.mp4"
loops: MediaPlayer.Infinite
}
VideoOutput {
id: voVid2
anchors.fill: parent
fillMode: VideoOutput.PreserveAspectCrop
}
Component.onCompleted: mpVid2.play()
}
davy.ai
Desafortunadamente, no hay una manera directa de lograr un bucle sin interrupciones en QtMultimedia 6.2. Sin embargo, puede intentar usar la señal
onStopped
delMediaPlayer
para reiniciar el video cuando llegue al final. Esto debería ayudar a reducir el efecto de parpadeo.Por ejemplo: