qt5中在界面中播放音频

直接上代码:

必须的库:

from PyQt5 import QtMultimedia
from PyQt5.QtCore import QUrl
import time  # 需要导入时间模块设置延时
import os

 Demo 代码:

path = os.getcwd();
file = QUrl.fromLocalFile(path+"\xxxx.mp3")  # 音频文件路径
content = QtMultimedia.QMediaContent(file)
player = QtMultimedia.QMediaPlayer()
player.setMedia(content)
player.setVolume(50)
player.play()
time.sleep()  # 设置延时等待音频播放结束

将代码加入qt系统中发现,

        time.sleep() # 设置延时等待音频播放结束,即使另起一个线程,运行到播放音频代码段时仍然会造成其他线程的卡顿,而如果单独去掉time.sleep(),会出现音频无法播放的问题。

解决办法:

Qtimer定时器:用来定时更新数据

self.Music_timer = QTimer(self)
        self.Music_timer.timeout.connect(self.fatigueMusic)
        self.Music_timer.start(2000) # 2s更新数据

播放音频的函数:

 def fatigueMusic(self):
        path = os.getcwd();
        while not self.framework.Music_result_queue.empty():
            fatigue_result = self.framework.Music_result_queue.get()
        # print("fatigue_result",fatigue_result)
            if fatigue_result == 0:
                file = QUrl.fromLocalFile(path + "\xx.mp3")  # 音频文件路径
            elif fatigue_result == 1:
                file = QUrl.fromLocalFile(path + "\xxxx.mp3")# 音频文件路径
            elif fatigue_result == 2:
                file = QUrl.fromLocalFile(path + "\xxxx.mp3")# 音频文件路径
            elif fatigue_result == 3:
                file = QUrl.fromLocalFile(path + "\xxxx.mp3")# 音频文件路径
            elif fatigue_result == 4:
                file = QUrl.fromLocalFile(path + "\xx.mp3")# 音频文件路径
            content = QtMultimedia.QMediaContent(file)
            player = QtMultimedia.QMediaPlayer(self)
            player.setMedia(content)
            player.setVolume(50)
            player.play()

可以看到相比Demo 代码,只修改了player = QtMultimedia.QMediaPlayer(self),运行,问题解决,且不阻塞其他进程的运行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值