Code du Lecteur Multimedia PySide6
# Interface graphique
# Python
bonjour, sur cette formation pyside, le lecteur multimedia, j'ai eu pas mal d'import de fonction qu'il ma fallut recherchr dans le code source Pyside pour retrouver les fonctions qui corespodait au video,
je vous poste le code en esperent que ca pourrait servire a quelqu'un :
from functools import partial
from PySide6 import QtWidgets, QtMultimedia, QtMultimediaWidgets, QtCore
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PyPlayer")
self.open_icon = self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_DriveDVDIcon)
self.play_icon = self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_MediaPlay)
self.previous_icon = self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_MediaSkipBackward)
self.next_icon = self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_MediaSkipForward)
self.pause_icon = self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_MediaPause)
self.stop_icon = self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_MediaStop)
self.setup_ui()
def setup_ui(self):
self.create_widgets()
self.modify_widgets()
self.create_layouts()
self.add_widgets_to_layouts()
self.setup_connections()
def create_widgets(self):
self.video_widget = QtMultimediaWidgets.QVideoWidget()
self.player = QtMultimedia.QMediaPlayer()
self.toolbar = QtWidgets.QToolBar()
self.file_menu = self.menuBar().addMenu("Fichier")
# ACTION
self.act_open = self.file_menu.addAction(self.open_icon, "Ouvrir")
self.act_open.setShortcut("Ctrl+O")
self.act_play = self.toolbar.addAction(self.play_icon, "Lire")
self.act_previous = self.toolbar.addAction(self.previous_icon, "Revenir au début")
self.act_next = self.toolbar.addAction(self.next_icon, "Passer au Suivant")
self.act_pause = self.toolbar.addAction(self.pause_icon, "Pause")
self.act_stop = self.toolbar.addAction(self.stop_icon, "Stop")
def modify_widgets(self):
pass
def create_layouts(self):
pass
def add_widgets_to_layouts(self):
self.addToolBar(self.toolbar)
self.setCentralWidget(self.video_widget)
self.player.setVideoOutput(self.video_widget)
def setup_connections(self):
self.act_open.triggered.connect(self.open)
self.act_play.triggered.connect(self.play)
self.act_pause.triggered.connect(self.player.pause)
self.act_stop.triggered.connect(self.player.stop)
self.act_previous.triggered.connect(partial(self.player.setPosition, 0))
self.player.playbackStateChanged.connect(self.update_buttons) # changement ici
def play(self):
self.player.play()
self.video_widget.resize(QtCore.QSize(1, 1))
def open(self):
file_dialog = QtWidgets.QFileDialog(self)
file_dialog.setMimeTypeFilters(["Video/mp4"])
movies_dir = QtCore.QStandardPaths.writableLocation(QtCore.QStandardPaths.StandardLocation.MoviesLocation) # ici changement
file_dialog.setDirectory(movies_dir)
if file_dialog.exec() == QtWidgets.QDialog.DialogCode.Accepted: # ici aussi
movie = file_dialog.selectedUrls()[0]
self.player.setSource(movie) # ici changement
self.player.play()
def update_buttons(self, state):
self.act_play.setDisabled(state == QtMultimedia.QMediaPlayer.PlaybackState.PlayingState)
self.act_pause.setDisabled(state == QtMultimedia.QMediaPlayer.PlaybackState.PausedState)
self.act_stop.setDisabled(state == QtMultimedia.QMediaPlayer.PlaybackState.StoppedState)
# sur les trois derniere ligne aussi
merci au control B
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte