PyQt5视频播放器界面开发(代码开源)

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高级,python)