PyQt5 - 在新 window 中打开 QMediaplayer 并播放视频
PyQt5 - open QMediaplayer in new window and play video
这可能归结为基本的 python 理解,但我正在努力使用 PyQt5 和 Python3 在新 window 中打开视频。
当我运行这段代码时:
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
import sys
app = QApplication(sys.argv)
w = QVideoWidget()
w.resize(300, 300)
w.move(0, 0)
w.show()
player = QMediaPlayer()
player.setMedia(QMediaContent(QUrl.fromLocalFile({inputVideo})))
player.setVideoOutput(w)
player.play()
sys.exit(app.exec_())
window 打开并播放视频文件。
我试图将这段代码添加到我的主程序中的一个 class 中,并尝试调用它,但总是失败。
我想要实现的是从主 GUI 按下 QPushbutton 打开一个新的 window 并在那个新的 window 中播放视频。
正如我所说,这可能是基本的 python 编码,但我想我还没有做到。
非常感谢您的帮助!!
谢谢!
您必须构建一个 QPushButton
和 connect
其 clicked
插槽到显示和播放您的视频的函数。
(你必须先setVideoOutput
然后setMedia
)
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication, QPushButton
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
import sys
class VideoPlayer:
def __init__(self):
self.video = QVideoWidget()
self.video.resize(300, 300)
self.video.move(0, 0)
self.player = QMediaPlayer()
self.player.setVideoOutput(self.video)
self.player.setMedia(QMediaContent(QUrl.fromLocalFile("./some_video_file.avi")))
def callback(self):
self.player.setPosition(0) # to start at the beginning of the video every time
self.video.show()
self.player.play()
if __name__ == '__main__':
app = QApplication(sys.argv)
v = VideoPlayer()
b = QPushButton('start')
b.clicked.connect(v.callback)
b.show()
sys.exit(app.exec_())
这可能归结为基本的 python 理解,但我正在努力使用 PyQt5 和 Python3 在新 window 中打开视频。
当我运行这段代码时:
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
import sys
app = QApplication(sys.argv)
w = QVideoWidget()
w.resize(300, 300)
w.move(0, 0)
w.show()
player = QMediaPlayer()
player.setMedia(QMediaContent(QUrl.fromLocalFile({inputVideo})))
player.setVideoOutput(w)
player.play()
sys.exit(app.exec_())
window 打开并播放视频文件。
我试图将这段代码添加到我的主程序中的一个 class 中,并尝试调用它,但总是失败。
我想要实现的是从主 GUI 按下 QPushbutton 打开一个新的 window 并在那个新的 window 中播放视频。
正如我所说,这可能是基本的 python 编码,但我想我还没有做到。
非常感谢您的帮助!! 谢谢!
您必须构建一个 QPushButton
和 connect
其 clicked
插槽到显示和播放您的视频的函数。
(你必须先setVideoOutput
然后setMedia
)
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication, QPushButton
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
import sys
class VideoPlayer:
def __init__(self):
self.video = QVideoWidget()
self.video.resize(300, 300)
self.video.move(0, 0)
self.player = QMediaPlayer()
self.player.setVideoOutput(self.video)
self.player.setMedia(QMediaContent(QUrl.fromLocalFile("./some_video_file.avi")))
def callback(self):
self.player.setPosition(0) # to start at the beginning of the video every time
self.video.show()
self.player.play()
if __name__ == '__main__':
app = QApplication(sys.argv)
v = VideoPlayer()
b = QPushButton('start')
b.clicked.connect(v.callback)
b.show()
sys.exit(app.exec_())