编程语言
首页 > 编程语言> > python 使用pygame 或者pyqt5 播放音乐

python 使用pygame 或者pyqt5 播放音乐

作者:互联网

前言:在折腾点歌播放器的时候,在网上看了很多用python 播放音乐的相关介绍,瞎折腾了许久,最后在自己在编程过程中使用了pygame或pyqt5播放音乐。为了给后来者提供经验,和使用体验,简单记录下代码。
声明:这二者都是在用过的,复制研究研究就可以用(方便吧),python版本:3.7.8 编译器:VScode
2022-01-10 17:16:51 星期一
参考资料:
https://www.cnblogs.com/chan7/p/5801953.html Python 用pygame模块播放MP3
https://www.cnblogs.com/liquancai/p/13236974.html pygame 的声音播放
https://www.jianshu.com/p/917b2ea7f719 pyqt5音频播放
https://blog.csdn.net/Dontla/article/details/105251700 python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)

import pygame
from mutagen.mp3 import MP3
import time

def pygame_():

    song_path = '.\music.mp3'
    audio = MP3(song_path) # 获取音乐的播放时长
    pygame.mixer.init()    # 初始化音频部分
    pygame.mixer.music.load(song_path) # 载入音乐,支持ogg、mp3等格式不过,MP3 并不是所有的系统都支持(Linux 默认就不支持 MP3 播放)
    pygame.mixer.music.play()          # 播放start
    time.sleep(int(audio.info.length)) # 注意:一定需要设置time.sleep,否则程序在一瞬间跑完

# 其他相关命令---------------------------------------------------------------------------
'''
    pygame.mixer.music.stop() # 音乐停止
    pygame.mixer.music.rewind() # 重新播放
    pygame.mixer.music.pause() # 暂停播放
    pygame.mixer.music.unpause() # 取消暂停
    pyagme.mixer.music.get_pos() # 获取当前播放了多长时间
    pygame.mixer.music.get_busy() # 判断是否在播放音乐,返回1为正在播放
    pygame.mixer.music.set_volume(value) # 设置音量,音量value的范围为0.0到1.0
    pygame.mixer.music.fadeout(time) # 用来进行淡出,在time毫秒的时间内音量由初始值渐变为0,最后停止播放
    pygame.mixer.music.set_endevent(pygame.USEREVENT + 1) # 在音乐播放完成时,用事件的方式通知用户程序,设置当音乐播放完成时发送pygame.USEREVENT+1事件给用户程序
    pygame.mixer.music.queue(filename) # 使用指定下一个要播放的音乐文件,当前的音乐播放完成后自动开始播放指定的下一个。一次只能指定一个等待播放的音乐文件
    pygame.mixer.music.play(loops=0, start=0.0) 
    # 其中 loops 表示循环次数,如果设置为 -1 ,表示不停的循环播放,如果 loops 为 5 ,则播放 5+1=6 次;start 表示从音乐文件的哪一秒开始播放,设置为 0 表示从开始完整播放
    
    # 注pygame还可以使用sound 对象来播放音乐,但是必须是 WAV 或者 OGG 文件
    hello_sound = pygame.mixer.Sound("hello.ogg")		# 建立 Sound 对象
    hello_sound.play()					                # 声音播放一次
    
    # play(loop, maxtime) ,loop 是重复的次数(取1是两次,注意是重复的次数,而不是播放的次数),-1 意味着无限循环;maxtime 是指多少毫秒后结束
    # 若不使用任何参数调用,意味着把这个声音播放一次。一旦 play() 方法调用成功,就会返回一个 Channel 对象,否则返回一个 None
'''

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import QtMultimedia
import sys

# 播放mp3------------------------------------------------------------------
app = QtWidgets.QApplication(sys.argv)
path = '.\music.mp3' # 音乐文件路径
url = QtCore.QUrl.fromLocalFile(path)
# 

标签:sound,pyqt5,python,QtMultimedia,mixer,music,pygame,播放
来源: https://www.cnblogs.com/addPath/p/15788323.html