1,界面上如何加载展示一个视频:
#导入一些需要依赖的库
from PyQt5.QtMultimedia import *
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtCore import QUrl
def test():
# 定义一个播放器对象
player = QMediaPlayer()
# 设置播放器的窗口
video_widget = QVideoWidget()
# 设置播放器输出窗口
player.setVideoOutput(video_widget)
# 播放器绑定视频路径
video_url = QUrl('file:./Video\\video.mp4')
player.setMedia(QMediaContent(video_url))
gridLayout.addWidget(self.video_widget,0,0)
#开始播放视频
player.play()
# 视频暂停
#player.pause()
以上的代码仅供参考,不可单独运行。
2,如何给视频添加一个进度条和时间显示:
def connect_signal():
# 实时更新进度条
player.positionChanged.connect(changeSlide)
#打开或关闭滑块跟踪
Play_Slider.setTracking(False)
#鼠标按下,再释放后的瞬间,就触发这个信号
Play_Slider.sliderReleased.connect(releaseSlider)
#点击滑动条时所发出的信号
Play_Slider.sliderPressed.connect(pressSlider)
# 拖动进度条
Play_Slider.sliderMoved.connect(moveSlider)
def changeSlide(position):
# 实时更新进度条显示
if not Play_Slider_pressed:
vidoeLength = player.duration()+0.1
Play_Slider.setValue(round((position/vidoeLength)*100))
def releaseSlider(self):
self.Play_Slider_pressed = False
def pressSlider():
Play_Slider_pressed = True
def moveSlider(position):
# 拖动进度条更改视频进度
if player.duration() > 0: # 开始播放后才允许进行跳转
video_position = int((position / 100) * player.duration())
player.setPosition(video_position)
def play_video():
# 打开视频函数
player.play()
#定时器,定时更新视频播放进度
timer.setInterval(1000)
timer.start()
# 实时更新视频播放时间
timer.timeout.connect(onTimerOut)
def onTimerOut():
#获取视频的时长
m, s = divmod(player.position() / 1000, 60)
h, m = divmod(m, 60)
#显示视频的播放时间
label_time2.setText("%02d:%02d:%02d" % (h, m, s))
3,界面大概的样式如下图:
一个界面两个窗口。 第一个窗口包含缩略图片,可以点击跳转到进度条。第二个窗口显示八个小视频。
版权声明:本文为python_pycharm原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。