一 代码
import os
import tkinter
import tkinter.filedialog
import random
import time
import threading
import pygame
folder =''
def play():
#默认播放D:\music文件夹中所有mp3文件
global folder
musics =[folder+'\\'+music for music in os.listdir(folder) \
if music.endswith(('.mp3','.wav','.ogg'))]
total = len(musics)
#初始化混音器设备
pygame.mixer.init()
while playing:
ifnot pygame.mixer.music.get_busy():
#随机播放一首歌曲
nextMusic = random.choice(musics)
pygame.mixer.music.load(nextMusic.encode())
#播放一次
pygame.mixer.music.play(1)
musicName.set('playing....'+nextMusic)
else:
time.sleep(0.3)
root = tkinter.Tk()
root.title('音乐播放器v1.0---cakin24')
root.geometry('280x70+400+300')
root.resizable(False,False)
#关闭程序时执行的代码
def closeWindow():
global playing
playing =False
try:
pygame.mixer.music.stop()
pygame.mixer.quit()
except:
pass
root.destroy()
root.protocol('WM_DELETE_WINDOW', closeWindow)
pause_resume = tkinter.StringVar(root, value='NotSet')
playing =False
#播放按钮
def buttonPlayClick():
global folder
ifnot folder:
folder = tkinter.filedialog.askdirectory()
ifnot folder:
return
global playing
playing =True
#创建一个线程来播放音乐
t = threading.Thread(target=play)
t.start()
#根据情况禁用和启用相应的按钮
buttonPlay['state']='disabled'
buttonStop['state']='normal'
buttonPause['state']='normal'
buttonNext['state']='normal'
pause_resume.set('Pause')
buttonPlay = tkinter.Button(root, text='Play', command=buttonPlayClick)
buttonPlay.place(x=20, y=10, width=50, height=20)
#停止按钮
def buttonStopClick():
global playing
playing =False
pygame.mixer.music.stop()
musicName.set('暂时没有播放音乐')
buttonPlay['state']='normal'
buttonStop['state']='disabled'
buttonPause['state']='disabled'
buttonStop = tkinter.Button(root, text='Stop', command=buttonStopClick)
buttonStop.place(x=80, y=10, width=50, height=20)
buttonStop['state']='disabled'
#暂停与恢复,两个功能共用一个按钮
def buttonPauseClick():
global playing
if pause_resume.get()=='Pause':
#playing = False
pygame.mixer.music.pause()
pause_resume.set('Resume')
elif pause_resume.get()=='Resume':
#playing = True
pygame.mixer.music.unpause()
pause_resume.set('Pause')
buttonPause = tkinter.Button(root, textvariable=pause_resume,
command=buttonPauseClick)
buttonPause.place(x=140, y=10, width=50, height=20)
buttonPause['state']='disabled'
#下一首音乐
def buttonNextClick():
global playing
playing =False
pygame.mixer.music.stop()
pygame.mixer.quit()
buttonPlayClick()
buttonNext = tkinter.Button(root, text='Next', command=buttonNextClick)
buttonNext.place(x=200, y=10, width=50, height=20)
buttonNext['state']='disabled'
musicName = tkinter.StringVar(root, value='暂时没有播放音乐...')
labelName = tkinter.Label(root, textvariable=musicName)
labelName.place(x=0, y=40, width=270, height=20)
#启动消息循环
root.mainloop()
二 运行结果
相关推荐
9. **跨平台兼容性**:Python的一个优点是其跨平台特性,一个用Python编写的音乐播放器理论上可以在Windows、MacOS和Linux等操作系统上运行。开发者需要注意使用跨平台的库,并确保代码在不同环境下能正常工作。 10...
在本压缩包“Python源码实例-21 音乐播放器.rar”中,包含了一个用Python语言编写的音乐播放器项目。这个项目是针对初学者和中级开发者设计的,旨在帮助他们理解如何利用Python进行多媒体应用开发。下面将详细探讨这...
在本项目中,我们探索的是一个使用Python编程语言编写的音乐播放器的源代码实例。这个音乐播放器项目是Python初学者和进阶者学习面向对象编程、GUI设计以及音频处理的一个理想实践平台。通过分析和理解这个项目的...
通过上述代码示例,我们可以看到使用Python和Pygame结合Tkinter可以轻松地实现一个基本的音乐播放器应用。这种实现方式不仅可以帮助初学者理解多媒体文件的处理流程,还可以为那些希望扩展自己技能集的开发者提供有...
项目中实现的音乐播放器部分可能涉及多媒体处理。Python的pygame库是一个流行的模块,可以用于创建游戏和多媒体应用,包括音乐播放。开发者可能利用pygame的mixer模块加载音频文件,并控制播放、暂停、停止等操作。 ...
Gomoku和MCTS用C ++编写 SWIG wrap C ++扩展 更新2019.7.10:支持Ubuntu和Windows 精氨酸 编辑config.py 环境 Python 3.6+ PyGame 1.9以上 PyTorch 1.0+ LibTorch 1.0+ MSVC14.0 / GCC6.0 + CMake 3.8以上 SWIG ...
6. **多线程**:为了保证音乐播放不影响程序其他功能(如用户界面的响应),开发者可能使用了Python的`threading`模块来实现多线程,使得音乐播放和用户交互可以在不同的线程上同时进行。 7. **音乐格式支持**:...
Python的`threading`模块可以帮助创建和管理线程,确保音乐播放和用户交互可以并行进行。 6. **数据库存储**:如果音乐数量较多,可能需要将音乐信息(如标题、艺术家、专辑等)存储在数据库中。Python可以连接多种...
【Python-一个简易的爬虫工具使用Python语言编写用于zhihu全自动捕鱼】 在Python编程领域,Web爬虫是一项常用的技术,它允许我们自动化地抓取网页内容,从而进行数据分析或构建自己的信息库。本项目名为"zhihu-...
Python的threading模块可以帮助创建并管理多个线程,让音乐播放与GUI交互独立进行。 7. **文件操作**:项目中可能包含读取或保存用户自定义的表白语句或音乐文件,这就需要用到Python的内置文件操作函数,如open()...
- **pygame**: Pygame是Python中广泛用于游戏开发和多媒体处理的库,它包含了音频播放和音乐管理的功能,非常适合用来构建音乐播放器。 - **pyglet**: 另一个强大的多媒体处理库,支持音频播放和处理,可以创建跨...
2. **多媒体处理库**: 为了播放音乐,我们需要用到多媒体处理库,例如`pygame`或者`pyglet`。这些库能够处理音频文件,支持播放、暂停、停止等操作,并可以控制音量。 3. **文件I/O操作**: 音乐播放器需要能够读取...
- **多线程或多进程**:为了同时处理多个玩家的请求,可能需要用到Python的`threading`或`multiprocessing`库。 - **同步机制**:在并发环境中,可能需要锁或其他同步工具防止数据竞争。 5. **游戏逻辑**: - **...
在参考教材、老师提供的资料、网络资料,一步一步学习游戏编程之后,我学会了制作游戏界面、制作按钮等,渐渐熟练使用游戏编程工具,并完成了游戏程序的编写。实训这几天我完成了这个项目,对自己努力的成果很有成就...
在这个“Python编写的在线聊天室”项目中,我们将探讨如何使用Python来创建一个实时通信的网络应用,这对于理解和掌握Python网络编程的基本概念非常有帮助。 1. **Python基础** 在开始这个项目之前,了解Python的...
4. **音频处理**:如果桌面宠物能播放音乐,那么将涉及音频处理库,如`pygame.mixer`(属于Pygame库的一部分)或`pyglet`,用于加载和播放音频文件。 5. **系统操作**:宠物可能需要执行一些系统级别的操作,如读取...
Python有多种库可用于音频处理,如`pygame`或`pygame.mixer`,它们可以用来合成和播放音频。了解音乐的频率、音高和节奏的概念至关重要。 5. **MIDI和音乐理论**:程序可能支持MIDI输入,这样用户可以通过键盘演奏...
2. **音频处理**:项目涉及音频文件的读取、处理和播放,这需要对音频编码格式(如MP3、WAV等)有所了解,以及如何使用Python库(如Pygame、pygame.mixer或pyaudio)来实现音频播放功能。 3. **GUI编程**:为了实现...
2. **音乐处理库**:Python中有多个专门用于音乐处理的库,如`pygame`、`MIDIutil`、`pyaudio`等。`pygame`库常用于游戏开发,但其音效模块也能处理音乐播放和暂停;`MIDIutil`则能帮助开发者生成和操作MIDI文件;`...
这些都是编写任何Python程序的基础。 2. **图形库**:本项目可能使用了如`pygame`这样的Python图形库来创建游戏界面和处理用户输入。`pygame`库提供了丰富的功能,包括绘制图形、处理事件、播放音效等。 3. **事件...