# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui界面.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
class Ui_MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
def setupUi(self,MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(985, 620)
MainWindow.setMinimumSize(QtCore.QSize(985, 620))
MainWindow.setMaximumSize(QtCore.QSize(985, 620))
.......
.......
.......
self.label_6.raise_()
self.label_7.raise_()
self.label_8.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.songs_list = []
self.song_formats = ['mp3', 'm4a', 'flac', 'wav', 'ogg']
self.player = QMediaPlayer()
self.cur_playing_song = ''
self.is_pause = True
......
......
......
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "音乐管理及其生成系统"))
self.label_2.setText(_translate("MainWindow", "搜索音乐"))
self.pushButton_6.setText(_translate("MainWindow", "上一首"))
self.pushButton_5.setText(_translate("MainWindow", "播放"))
self.pushButton_7.setText(_translate("MainWindow", "下一首"))
.......
.......
.......
def playMusic(self):
if self.listWidget.count() == 0:
self.Tips('无可播放的音乐文件')
return
if not self.player.isAudioAvailable():
self.setCurPlaying()
if self.is_pause :
self.player.play()
self.is_pause = False
self.pushButton_5.setText('暂停')
elif not self.is_pause :
self.player.pause()
self.is_pause = True
self.pushButton_5.setText('播放')
..........
..........
..........
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = Ui_MainWindow()
ui.show()
sys.exit(app.exec_())
好像是setupUI()初始化和QMediaPlayer的实例化的问题 改半天无法寻再带问题 只放了部分代码 打印QtMultimedia.QMediaPlayer.MediaStatus() 输出一直是0
关键代码太少,问题不好分析。给你写一个MP3播放器的示例,代码如下。
import sys
from PyQt5.QtWidgets import QWidget,QApplication,QPushButton,QSlider,QLabel
from PyQt5.QtMultimedia import QMediaPlayer,QMediaContent
from PyQt5.QtCore import QUrl,Qt
import os
class Mp3(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.control_flag = 0
def formatTime(self,num):
num = int(num)
if num>0:
min = str(int(num/60+100))[1:3]
sec = str(int(num%60+100))[1:3]
return "%s:%s" % (str(min),str(sec))
return "00:00"
def initUI(self):
mp3file = "data/01 来生缘.mp3"
self.player = QMediaPlayer()
self.player.setMedia(QMediaContent(QUrl.fromLocalFile(mp3file)))
self.player.play()
mp3_lbl = QLabel(os.path.basename(mp3file),self)
mp3_lbl.move(100, 30)
print(self.player.mediaStatus())
#mp3 时长
self.time_lbl = QLabel(self)
self.time_lbl.move(130, 60)
self.volume_slider = QSlider(self)
self.volume_slider.resize(10,50)
self.volume_slider.move(240,80)
self.volume_slider.valueChanged[int].connect(self.volume)
self.player.setVolume(25)
self.volume_lbl = QLabel("25",self)
self.volume_lbl.move(240, 130)
self.play_slider = QSlider(Qt.Horizontal,self)
self.play_slider.resize(200,20)
self.play_slider.move(30,80)
self.play_slider.sliderPressed.connect(self.setControlIn)
self.play_slider.sliderReleased.connect(self.setControlOut)
self.play_slider.sliderMoved.connect(self.setControlIn)
self.player.pause()
self.actionbtn = QPushButton("点击播放",self)
self.actionbtn.move(100, 130)
self.actionbtn.clicked.connect(self.action)
# 信号、槽
self.player.positionChanged.connect(self.playState)
self.player.durationChanged.connect(self.playTime)
self.setGeometry(300,300,300,200)
self.setWindowTitle("MP3")
# 按下
def setControlIn(self):
self.control_flag = 1
#离开
def setControlOut(self):
self.control_flag = 0
time = int(self.player.duration() / 1000)
pos = int(self.play_slider.value()/100*time*1000)
self.player.setPosition(pos)
#播放位置
def playState(self):
dur = int(self.player.position()/1000)
time = int(self.player.duration()/1000)
self.time_lbl.setText("%s/%s" % (self.formatTime(dur), self.formatTime(time)))
self.time_lbl.adjustSize()
#控制进度
if self.control_flag == 0:
self.play_slider.setValue(int(dur/time*100))
def playTime(self):
time = int(self.player.duration()/1000)
self.time_lbl.setText("%s/%s" %(self.formatTime(0),self.formatTime(time)))
self.time_lbl.adjustSize()
def volume(self,num):
self.player.setVolume(num)
self.volume_lbl.setText(str(num))
self.volume_lbl.adjustSize()
def action(self):
if self.actionbtn.text() == "播放中":
self.actionbtn.setText("已暂停")
self.player.pause()
else:
self.actionbtn.setText("播放中")
self.player.play()
if __name__ =="__main__":
app = QApplication(sys.argv)
ex = Mp3()
ex.show()
sys.exit(app.exec_())
把mp3file换成自己电脑上的路径,就可以播放音乐了。
如果觉得答案解决了你的问题,帮忙点个“采纳”哦!
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632