2023年7月11日发(作者:)
python实现视频播放器_对⽬前的视频播放器不满意?教你⽤Python做⼀个视频播放器...前⾔本⽂的⽂字及图⽚来源于⽹络,仅供学习、交流使⽤,不具有任何商业⽤途,如有问题请及时联系我们以作处理。以下⽂章来源于Charles的⽪卡丘 ,作者⽩露未晞mePython爬⾍、数据分析、⽹站开发等案例教程视频免费在线观看这⾥我们主要利⽤PyQt5来带⼤家写个简单的视频播放器。⾸先,我们来初始化⼀下视频播放器的窗⼝:# 初始化窗⼝dowTitle('视频播放器')dowIcon(QIcon(((), 'images/')))metry(300, 50, 810, 600)dowFlags(CloseButtonHint | MinimizeButtonHint)palette = QPalette()or(ound, )ette(palette)其中setWindowTitle函数⽤于设置窗⼝标题,⽽setWindowIcon函数则⽤于设置窗⼝图标:接着,我们来定义⼀些必要的组件,即视频播放插件:_widget = QVideoWidget(self)_metry(QRect(5, 5, 800, 520))palette = QPalette()or(ound, )_ette(palette)_leSheet('background-color:#000000') = QMediaPlayer(self)eoOutput(_widget)ume(50)和选择视频相关的组件:# --当前的视频路径_line_edit = QLineEdit('')# --选择视频按钮_video_btn = QPushButton('选择')播放和暂停按钮(需要注意的是播放和暂停按钮不能同时显⽰,即默认是显⽰播放键,隐藏暂停键,按下播放键后播放键按钮隐藏,⽽暂停键按钮显⽰,以此类推):# --播放按钮_btn = QPushButton(self)_n(QIcon(((), 'images/')))_nSize(QSize(25, 25))_leSheet('''QPushButton{border:none;}QPushButton:hover{border:none;border-radius:35px;}''')_sor(QCursor(ngHandCursor))_lTip('播放')_t(True)# --暂停按钮_btn = QPushButton('')_n(QIcon(((), 'images/')))_nSize(QSize(25, 25))_leSheet('''QPushButton{border:none;}QPushButton:hover{border:none;}''')_sor(QCursor(ngHandCursor))_lTip('暂停')_t(True)_()播放进度相关的组件:# --播放进度_progress_label = QLabel('00:00 / 00: 00')_progress_slider = QSlider(ntal, self)_progress_imum(0)_progress_gleStep(1)_progress_metry(QRect(0, 0, 200, 10))⾳量控制相关的组件:# --⾳量控制_slider = QSlider(ntal)_imum(0)_imum(100)_ue(50)_btn = QPushButton('')_n(QIcon(((), 'images/')))_nSize(QSize(25, 25))_leSheet('''QPushButton{border:none;}QPushButton:hover{border:none;}''')_sor(QCursor(ngHandCursor))_lTip('禁⾳')_t(True)_label = QLabel('50')然后简单地⾃动布局⼀下:# --布局v_layout = QVBoxLayout()v_cing(0)v_etch()h_layout = QHBoxLayout()h_cing(15)h_get(_line_edit, 2, Center | Center)h_get(_video_btn, 0, enter | Center)v_out(h_layout)h_layout = QHBoxLayout()h_cing(2)h_get(_btn, 0, enter | Center)h_get(_btn, 0, enter | Center)h_get(_progress_label, 0, enter | Center)h_get(_progress_slider, 15, Center | Center)h_get(_btn, 0, enter | Center)h_get(_slider, 0, enter | Center)h_get(_label, 0, enter | Center)v_out(h_layout)out(v_layout)接着,我们来实现⼀下各个控件可以触发的功能。⾸先是播放和暂停功能,这个很简单,代码如下:'''播放视频'''def playvideo(self):if on() == 0: _()_()()'''暂停视频'''def pausevideo(self):if on() == 0: _()_()()需要注意的是点击播放和暂停按钮的时候需要同时切换⼀下按钮的状态(即点击完暂停键需要显⽰播放键隐藏暂停键,点击完播放键需要显⽰暂停键隐藏播放键,以实现按键切换形态的效果)。在播放的过程中,记得实时地修改进度条的显⽰:'''播放进度设置'''def setPlayProgress(self):_, right = _progress_().split('/')position = on() + 1second = int(position / 1000 % 60)minute = int(position / 1000 / 60)left = str(minute).zfill(2) + ':' + str(second).zfill(2)_progress_t(left + ' /' + right)_progress_ue(position)对了,播放视频之前我们需要打开视频⽂件,功能实现如下:'''打开视频⽂件'''def openvideo(self):# 打开并显⽰视频路径filepath = nFileName(self, '请选择视频', '.')if filepath[0]:_line_t(filepath[0])# 将视频路径初始化进视频播放插件filepath = _line_()if not (filepath): returnfileurl = calFile(filepath)if d():ia(QMediaContent(fileurl))ume(50)接着是拖动视频播放进度条的功能:'''播放进度条按下ing事件'''def playProgressSliderPressed(self):if () != 0: ()'''播放进度条按下释放事件'''def playProgressSliderReleased(self):if () != 0:ition(_progress_())()即拖动进度条的过程中暂停播放视频,拖动结束后将视频的播放进度切换到和进度条相对应的位置。⾳量控制功能(这个原理和拖动视频播放进度条的实现类似):'''设置⾳量'''def setVolume(self):value = _()if value:ed(False)ume(value)_t(str(value))_ue(value)_n(QIcon(((), 'images/')))else:ed(True)_t('0')_ue(0)_n(QIcon(((), 'images/')))最后⼀个⼩细节,当视频播放器的窗⼝⼤⼩改变时,我们⾃适应地修改播放插件的窗⼝⼤⼩:'''改变窗⼝⼤⼩'''def resizeEvent(self, event):size = ()_metry(5, 5, () - 5, () - 80)
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689066367a202314.html
评论列表(0条)