参考代码时候 自己写的QMediaplayer()无法播放音乐

    # -*- 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