`
cakin24
  • 浏览: 1388959 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

pygame+threading编写音乐播放器

阅读更多

一 代码

  1. import os
  2. import tkinter
  3. import tkinter.filedialog
  4. import random
  5. import time
  6. import threading
  7. import pygame
  8. folder =''
  9. def play():
  10. #默认播放D:\music文件夹中所有mp3文件
  11. global folder
  12. musics =[folder+'\\'+music for music in os.listdir(folder) \
  13. if music.endswith(('.mp3','.wav','.ogg'))]
  14. total = len(musics)
  15. #初始化混音器设备
  16. pygame.mixer.init()
  17. while playing:
  18. ifnot pygame.mixer.music.get_busy():
  19. #随机播放一首歌曲
  20. nextMusic = random.choice(musics)
  21. pygame.mixer.music.load(nextMusic.encode())
  22. #播放一次
  23. pygame.mixer.music.play(1)
  24. musicName.set('playing....'+nextMusic)
  25. else:
  26. time.sleep(0.3)
  27. root = tkinter.Tk()
  28. root.title('音乐播放器v1.0---cakin24')
  29. root.geometry('280x70+400+300')
  30. root.resizable(False,False)
  31. #关闭程序时执行的代码
  32. def closeWindow():
  33. global playing
  34. playing =False
  35. try:
  36. pygame.mixer.music.stop()
  37. pygame.mixer.quit()
  38. except:
  39. pass
  40. root.destroy()
  41. root.protocol('WM_DELETE_WINDOW', closeWindow)
  42. pause_resume = tkinter.StringVar(root, value='NotSet')
  43. playing =False
  44. #播放按钮
  45. def buttonPlayClick():
  46. global folder
  47. ifnot folder:
  48. folder = tkinter.filedialog.askdirectory()
  49. ifnot folder:
  50. return
  51. global playing
  52. playing =True
  53. #创建一个线程来播放音乐
  54. t = threading.Thread(target=play)
  55. t.start()
  56. #根据情况禁用和启用相应的按钮
  57. buttonPlay['state']='disabled'
  58. buttonStop['state']='normal'
  59. buttonPause['state']='normal'
  60. buttonNext['state']='normal'
  61. pause_resume.set('Pause')
  62. buttonPlay = tkinter.Button(root, text='Play', command=buttonPlayClick)
  63. buttonPlay.place(x=20, y=10, width=50, height=20)
  64. #停止按钮
  65. def buttonStopClick():
  66. global playing
  67. playing =False
  68. pygame.mixer.music.stop()
  69. musicName.set('暂时没有播放音乐')
  70. buttonPlay['state']='normal'
  71. buttonStop['state']='disabled'
  72. buttonPause['state']='disabled'
  73. buttonStop = tkinter.Button(root, text='Stop', command=buttonStopClick)
  74. buttonStop.place(x=80, y=10, width=50, height=20)
  75. buttonStop['state']='disabled'
  76. #暂停与恢复,两个功能共用一个按钮
  77. def buttonPauseClick():
  78. global playing
  79. if pause_resume.get()=='Pause':
  80. #playing = False
  81. pygame.mixer.music.pause()
  82. pause_resume.set('Resume')
  83. elif pause_resume.get()=='Resume':
  84. #playing = True
  85. pygame.mixer.music.unpause()
  86. pause_resume.set('Pause')
  87. buttonPause = tkinter.Button(root, textvariable=pause_resume,
  88. command=buttonPauseClick)
  89. buttonPause.place(x=140, y=10, width=50, height=20)
  90. buttonPause['state']='disabled'
  91. #下一首音乐
  92. def buttonNextClick():
  93. global playing
  94. playing =False
  95. pygame.mixer.music.stop()
  96. pygame.mixer.quit()
  97. buttonPlayClick()
  98. buttonNext = tkinter.Button(root, text='Next', command=buttonNextClick)
  99. buttonNext.place(x=200, y=10, width=50, height=20)
  100. buttonNext['state']='disabled'
  101. musicName = tkinter.StringVar(root, value='暂时没有播放音乐...')
  102. labelName = tkinter.Label(root, textvariable=musicName)
  103. labelName.place(x=0, y=40, width=270, height=20)
  104. #启动消息循环
  105. root.mainloop()
二 运行结果

 
  • 大小: 3.7 KB
1
1
分享到:
评论

相关推荐

    Python-Python音乐播放器

    9. **跨平台兼容性**:Python的一个优点是其跨平台特性,一个用Python编写的音乐播放器理论上可以在Windows、MacOS和Linux等操作系统上运行。开发者需要注意使用跨平台的库,并确保代码在不同环境下能正常工作。 10...

    Python源码实例-21 音乐播放器.rar

    在本压缩包“Python源码实例-21 音乐播放器.rar”中,包含了一个用Python语言编写的音乐播放器项目。这个项目是针对初学者和中级开发者设计的,旨在帮助他们理解如何利用Python进行多媒体应用开发。下面将详细探讨这...

    python项目实例代码源码-音乐播放器.zip

    在本项目中,我们探索的是一个使用Python编程语言编写的音乐播放器的源代码实例。这个音乐播放器项目是Python初学者和进阶者学习面向对象编程、GUI设计以及音频处理的一个理想实践平台。通过分析和理解这个项目的...

    基于python实现音乐播放器代码实例

    通过上述代码示例,我们可以看到使用Python和Pygame结合Tkinter可以轻松地实现一个基本的音乐播放器应用。这种实现方式不仅可以帮助初学者理解多媒体文件的处理流程,还可以为那些希望扩展自己技能集的开发者提供有...

    Music_wyy.zip

    项目中实现的音乐播放器部分可能涉及多媒体处理。Python的pygame库是一个流行的模块,可以用于创建游戏和多媒体应用,包括音乐播放。开发者可能利用pygame的mixer模块加载音频文件,并控制播放、暂停、停止等操作。 ...

    alpha-zero-gomoku:AlphaZero的多线程实现

    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 ...

    音乐调节心情-bicmusic1.6

    6. **多线程**:为了保证音乐播放不影响程序其他功能(如用户界面的响应),开发者可能使用了Python的`threading`模块来实现多线程,使得音乐播放和用户交互可以在不同的线程上同时进行。 7. **音乐格式支持**:...

    基于python的音乐系统.rar

    Python的`threading`模块可以帮助创建和管理线程,确保音乐播放和用户交互可以并行进行。 6. **数据库存储**:如果音乐数量较多,可能需要将音乐信息(如标题、艺术家、专辑等)存储在数据库中。Python可以连接多种...

    Python-一个简易的爬虫工具使用Python语言编写用于zhihu全自动捕鱼

    【Python-一个简易的爬虫工具使用Python语言编写用于zhihu全自动捕鱼】 在Python编程领域,Web爬虫是一项常用的技术,它允许我们自动化地抓取网页内容,从而进行数据分析或构建自己的信息库。本项目名为"zhihu-...

    python项目实例源码 实例-08 抖音表白 带背景音乐

    Python的threading模块可以帮助创建并管理多个线程,让音乐播放与GUI交互独立进行。 7. **文件操作**:项目中可能包含读取或保存用户自定义的表白语句或音乐文件,这就需要用到Python的内置文件操作函数,如open()...

    Music-player

    - **pygame**: Pygame是Python中广泛用于游戏开发和多媒体处理的库,它包含了音频播放和音乐管理的功能,非常适合用来构建音乐播放器。 - **pyglet**: 另一个强大的多媒体处理库,支持音频播放和处理,可以创建跨...

    music-player

    2. **多媒体处理库**: 为了播放音乐,我们需要用到多媒体处理库,例如`pygame`或者`pyglet`。这些库能够处理音频文件,支持播放、暂停、停止等操作,并可以控制音量。 3. **文件I/O操作**: 音乐播放器需要能够读取...

    每天分享几个python项目 —— rps-game-multiplayer-using-python.zip

    - **多线程或多进程**:为了同时处理多个玩家的请求,可能需要用到Python的`threading`或`multiprocessing`库。 - **同步机制**:在并发环境中,可能需要锁或其他同步工具防止数据竞争。 5. **游戏逻辑**: - **...

    一个用python编写的俄罗斯方块小游戏.py

    在参考教材、老师提供的资料、网络资料,一步一步学习游戏编程之后,我学会了制作游戏界面、制作按钮等,渐渐熟练使用游戏编程工具,并完成了游戏程序的编写。实训这几天我完成了这个项目,对自己努力的成果很有成就...

    python编写的在线聊天室,用于期末大作业.zip

    在这个“Python编写的在线聊天室”项目中,我们将探讨如何使用Python来创建一个实时通信的网络应用,这对于理解和掌握Python网络编程的基本概念非常有帮助。 1. **Python基础** 在开始这个项目之前,了解Python的...

    python项目实例代码源码-桌面宠物.zip

    4. **音频处理**:如果桌面宠物能播放音乐,那么将涉及音频处理库,如`pygame.mixer`(属于Pygame库的一部分)或`pyglet`,用于加载和播放音频文件。 5. **系统操作**:宠物可能需要执行一些系统级别的操作,如读取...

    电子琴_用python设计一个电子琴程序_可视化界面_电子琴_源码.zip

    Python有多种库可用于音频处理,如`pygame`或`pygame.mixer`,它们可以用来合成和播放音频。了解音乐的频率、音高和节奏的概念至关重要。 5. **MIDI和音乐理论**:程序可能支持MIDI输入,这样用户可以通过键盘演奏...

    dfPlayer-master_nhbgfd_foughtby8_zip_

    2. **音频处理**:项目涉及音频文件的读取、处理和播放,这需要对音频编码格式(如MP3、WAV等)有所了解,以及如何使用Python库(如Pygame、pygame.mixer或pyaudio)来实现音频播放功能。 3. **GUI编程**:为了实现...

    Music_Controller

    2. **音乐处理库**:Python中有多个专门用于音乐处理的库,如`pygame`、`MIDIutil`、`pyaudio`等。`pygame`库常用于游戏开发,但其音效模块也能处理音乐播放和暂停;`MIDIutil`则能帮助开发者生成和操作MIDI文件;`...

    python游戏 多人拼图 (1).7z

    这些都是编写任何Python程序的基础。 2. **图形库**:本项目可能使用了如`pygame`这样的Python图形库来创建游戏界面和处理用户输入。`pygame`库提供了丰富的功能,包括绘制图形、处理事件、播放音效等。 3. **事件...

Global site tag (gtag.js) - Google Analytics