需求

要求可以读取音频文档,有播放和暂停的功能

附上代码
(1)UI界面

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'UiForm.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing. from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(750, 350)
self.btn_readMusic = QtWidgets.QPushButton(Form)
self.btn_readMusic.setGeometry(QtCore.QRect(140, 200, 93, 28))
self.btn_readMusic.setObjectName("btn_readMusic")
self.btn_play = QtWidgets.QPushButton(Form)
self.btn_play.setGeometry(QtCore.QRect(310, 200, 93, 28))
self.btn_play.setObjectName("btn_play")
self.btn_pause = QtWidgets.QPushButton(Form)
self.btn_pause.setGeometry(QtCore.QRect(490, 200, 93, 28))
self.btn_pause.setObjectName("btn_pause")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(50, 110, 81, 21))
self.label.setObjectName("label")
self.label_MusicMessage = QtWidgets.QLabel(Form)
self.label_MusicMessage.setGeometry(QtCore.QRect(140, 110, 591, 21))
self.label_MusicMessage.setObjectName("label_MusicMessage") self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.btn_readMusic.setText(_translate("Form", "读取音频"))
self.btn_play.setText(_translate("Form", "播放"))
self.btn_pause.setText(_translate("Form", "停止"))
self.label.setText(_translate("Form", "当前播放:"))
self.label_MusicMessage.setText(_translate("Form", "暂无")) if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())

(2)逻辑处理类

# -*- coding: utf-8 -*-
# @Time : 2021/4/2 22:23
# @Author : Zeeland
# @File : FunEdit.py
# @Software: PyCharm from PyQt5.QtWidgets import QWidget,QApplication,QFileDialog,QMessageBox
from UiForm import Ui_Form
import sys,time,pygame class FunEdit(QWidget,Ui_Form):
'''
初始化各方面信息
'''
def __init__(self):
super(FunEdit, self).__init__()
self.setupUi(self)#Ui初始化
self.init() '''
该方法用于信号与槽的绑定
'''
def init(self):
self.btn_readMusic.clicked.connect(self.readMusic)
self.btn_play.clicked.connect(self.start)
self.btn_pause.clicked.connect(self.pause) '''
读取音频
'''
def readMusic(self):
#读取特定格式的文件,传入一个self,"标题名","初始显示文件夹的路径","特定格式(以两个分号区分)"
#该方法返回一个Tuple,分别为str类型的路径名和file的type(eg:MP3)
self.fdir,self.ftype =QFileDialog.getOpenFileName(self,"Open File","","Mp3(*.mp3);;Wav(*.wav)") # 判断是否为空路径,如果为空路径,则不能加载音频,否则会闪退
if self.fdir=="":
print("没有选择文件")
return print(self.fdir)
pygame.init()#初始化音乐播放装置,初始化后才可以使用
self.track =pygame.mixer.music.load(str(self.fdir))#加载音频文件(放入缓存池)
self.label_MusicMessage.setText(str(self.fdir)) '''
播放
'''
def start(self):
if self.label_MusicMessage.text()=='暂无':
QMessageBox.about(self,'message','当前暂无播放的音乐')
return
pygame.mixer.music.play()#播放 '''
停止播放
'''
def pause(self):
if self.label_MusicMessage.text()=='暂无':
QMessageBox.about(self,'message','当前暂无播放的音乐')
return
pygame.mixer.music.stop()#暂停
self.label_MusicMessage.setText("暂停中") '''
主方法运行入口
'''
if __name__ == '__main__':
app = QApplication(sys.argv)
win = FunEdit()
win.show()
sys.exit(app.exec())

用pyqt5做一个简易的音乐播放器的更多相关文章

  1. Hide-Music-Player 一个完整的音乐播放器《IT蓝豹》

    Hide-Music-Player 一个完整的音乐播放器 Hide-Music-Player 一个完整的音乐播放器,本例子主要包括几个点 (1)摇一摇进入播放器 (2)下拉展开新视图(扫描音乐) (3 ...

  2. Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)

    在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1.点击查看2).虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的. 本文演示如何使用 ...

  3. vue——一个页面实现音乐播放器

    请忽略下面这段文字年关将至,时间好歹又多出了些许.却不敢过度消遣.岁月未曾饶过我,我亦不想饶过岁月.且将它塞得膨胀,让这一年看似加更充实.不曾料想我一个爱些风花雪月.研墨行歌之人,却做起了碼农这一行当 ...

  4. 如何用vue打造一个移动端音乐播放器

    写在前面 没错,这就是慕课网上的那个vue音乐播放器,后台是某音乐播放器的线上接口扒取,虽然这类项目写的人很多,但不得不说这还是个少有的适合vue提升的好项目,做这个项目除了想写一个比较大并且功能复杂 ...

  5. JS写一个漂亮的音乐播放器

    先放上效果图: 正如图中所展示的播放器那样,我们用HTML+CSS+JS将这个效果实现出来. HTML页面布局 <div class="music"> <div ...

  6. Ubuntu 下一个可用的音乐播放器

    参考:http://www.pairsdoll.com/install-audacious-music-palyer-in-ubuntu.html/ 方法:打开terminal,sudo apt-ge ...

  7. [ 原创 ]学习笔记-做一个Android音乐播放器是遇到的一些困难

    最近再做一个安卓的音乐播放器,是实验室里学长派的任务,我是在eclipse上进行开发的,由于没有android的基础,所以做起来困难重重. 首先是布局上的困难 1.layout里的控件属性不熟悉 2. ...

  8. 简单的音乐播放器(VS 2010 + Qt 4.8.5)

    昨天历经千辛万苦,配置好了VS 2010中的Qt环境(包括Qt for VS插件),今天决定浅浅地品味一下将两者结合进行编程的魅力. 上网查了一些资料,学习了一些基础知识,决定做一个简单的音乐播放器, ...

  9. 用<audio>标签打造一个属于自己的HTML5音乐播放器

    上一章节,我们刚刚讲了<video>标签,今晚,我们讲的是<audio>标签,这两个东东除了表示的内容不一样以外,其他的特性相似的地方真的太多了,属性和用法几乎一样,也就说,如 ...

随机推荐

  1. ODM & mongoose

    ODM & mongoose ODM (object data modeling) https://mongoosejs.com/ MongoDB NoSQL xgqfrms 2012-202 ...

  2. Apache 低版本不支持 WebSocket

    Apache 低版本不支持 WebSocket Apache HTTP Server Version 2.4 Apache Module mod_proxy_wstunnel https://http ...

  3. BGV再度爆发,流通市值破500万美金!

    BGV似乎以超乎寻常的姿态,开启了爆发的模式.这两天,BGV一路上涨,日内最高涨至548.78美金,24小时成交额达到了98.07万美金,24小时成交量达到1844.93枚BGV,流通市值更是突破了5 ...

  4. 解决margin-top无效问题

    当两个空的块级元素嵌套时,如果内部的块设置有margin-top属性,而且父元素没有下边解决方法所述的特征,那么内部块的margin-top属性会绑架父元素(即将margin-top传递凌驾给了父元素 ...

  5. 方案设计:基于IDEA插件开发和字节码插桩技术,实现研发交付质量自动分析

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 如何保证代码质量? 业务提需求,产品定方案,研发做实现,测试验流程.四种角色的相互配 ...

  6. 微信支付 V3 的 Java 实现 Payment Spring Boot-1.0.7.RELEASE 发布

    Payment Spring Boot 是微信支付V3的Java实现,仅仅依赖Spring内置的一些类库.配置简单方便,可以让开发者快速为Spring Boot应用接入微信支付. 功能特性 实现微信支 ...

  7. 后端程序员之路 29、Thrift

    Apache Thrift是Facebook实现的一个高效的.支持多种编程语言的远程服务调用(RPC)框架. Apache Thrift - Homehttp://thrift.apache.org/ ...

  8. 常用linux命令,开发必备-速收藏

    在前面我们介绍了通过VirtualBox安装Linux的方法,参考: 一网打尽,一文讲通虚拟机VirtualBox及Linux使用 本文我们将介绍在使用linux的过程中常用的一些Linux命令,掌握 ...

  9. pytorch(17)学习率调整

    学习率调整 class _LRScheduler 主要属性 optimizer:关联的优化器 last_epoch:记录epoch数 bash_lrs:记录初始学习率 class _LRSchedul ...

  10. 【转载】markdown数学常用公式箭头符号

    来源1:https://www.jianshu.com/p/3f01c5658356 来源2:https://blog.csdn.net/smstong/article/details/4434063 ...