如何通过PySide6.QtMultimedia.QMediaPlayer在QPushButton上播放视频?
我希望在QPushButton上播放视频,让用户能在工具里轻松预览视频,选QPushButton是因为需要监听它的clicked信号。尝试了两种方式都没成功:
- 直接将QPushButton设为视频输出,没有任何反应
- 改用QVideoWidget,只显示黑屏,但打印的媒体状态为
MediaStatus.BufferedMedia,错误状态是Error.NoError
我的代码如下:
from PySide6 import QtWidgets, QtMultimedia, QtMultimediaWidgets class VideoPreviewWidget(QtWidgets.QWidget): def __init__(self, parent=None): super().__init__(parent) self.media_player = QtMultimedia.QMediaPlayer() self.media_player.setSource(...) self.media_player.setLoops(QtMultimedia.QMediaPlayer.Loops.Infinite) self.media_player.play() self.setLayout(QtWidgets.QVBoxLayout()) # self.preview_button = QtWidgets.QPushButton() # self.layout().addWidget(self.preview_button) # self.media_player.setVideoOutput(self.preview_button) Nothing happened self.video_widget = QtMultimediaWidgets.QVideoWidget() self.layout().addWidget(self.video_widget) self.media_player.setVideoOutput(self.video_widget) # Black screen self.media_player.mediaStatusChanged.connect(self.print_errors) def print_errors(self): print(self.media_player.mediaStatus(), self.media_player.errors(), self.media_player.errorString()) # MediaStatus.BufferedMedia Error.NoError
我已经查阅过Qt官方的播放器示例,但仍未找到问题所在。
内容的提问来源于stack exchange,提问作者Yang HG
相关产品推荐
相关产品推荐

