当前位置:   article > 正文

用Python3写的音乐播放器(播放、暂停、随机切歌、实时键盘控制)_pythoneye3d播放音乐

pythoneye3d播放音乐

功能的实现主要是基于pygame模块。

在实现功能之前,我尝试过很多python的音乐播放模块,还是pygame香。

话不多说,代码写的很清晰,直接上菜。

  1. # 音乐播放器
  2. import random
  3. import os
  4. import pygame
  5. import keyboard
  6. pygame.mixer.init()
  7. def menu():
  8. print("#########功能菜单#########")
  9. print("# 0.播放 #")
  10. print("# 1.暂停 #")
  11. print("# 2.继续 #")
  12. print("# 3.切歌 #")
  13. print("# 4.停止 #")
  14. print("##########################")
  15. def music_play(music):
  16. music_name = music
  17. try:
  18. pygame.mixer.music.load(r"D:/python_test/MUSIC/%s.mp3" % music_name)
  19. # print("\n正在播放: %s" % music_name)
  20. pygame.mixer.music.play()
  21. return music_name
  22. except Exception as e:
  23. print(e)
  24. def pause_music():
  25. print("暂停播放\n")
  26. pygame.mixer.music.pause()
  27. def unpause_music():
  28. print("继续播放\n")
  29. pygame.mixer.music.unpause()
  30. def stop_music():
  31. print("停止播放\n")
  32. pygame.mixer.music.stop()
  33. def skip_music():
  34. i = random.randint(0, len(music_list)-1)
  35. music_name = music_list[i]
  36. music_play(music_name)
  37. def get_music():
  38. # 获取当前文件所在的绝对路径
  39. file_path = os.path.split(os.path.realpath(__file__))[0]
  40. try:
  41. os.mkdir(file_path, "MUSIC") # 无MUSIC文件夹则创建
  42. except:
  43. pass
  44. music_path = os.path.join(file_path, "MUSIC")
  45. # music_path = './music'
  46. music_list = []
  47. f = os.listdir(music_path) # 获取所有的文件名列表
  48. for file_name in f:
  49. file_format = file_name[-4:]
  50. if file_format.lower() in (".mp3", ".wav"): # 只将其中的.mp3文件写入music_list
  51. music = file_name[:-4]
  52. music_list.append(music)
  53. return music_list
  54. '''
  55. if __name__ == "__main__":
  56. music_list = get_music()
  57. menu()
  58. while True:
  59. s = input("\n输入菜单序号:")
  60. if s == "0":
  61. music_name = random.choice(music_list)
  62. music_play(music_name)
  63. elif s == "1":
  64. pause_music()
  65. elif s == "2":
  66. unpause_music()
  67. elif s == "3":
  68. skip_music()
  69. elif s == "4":
  70. stop_music()
  71. else:
  72. print("输入不合法!")
  73. '''
  74. #改用实时监控键盘来控制,而不是输入控制
  75. if __name__ == "__main__":
  76. music_list = get_music()
  77. menu()
  78. while True:
  79. # s = input("\n输入菜单序号:")
  80. if keyboard.is_pressed('0'):
  81. music_name = random.choice(music_list)
  82. music_play(music_name)
  83. elif keyboard.is_pressed('1'):
  84. pause_music()
  85. elif keyboard.is_pressed('2'):
  86. unpause_music()
  87. elif keyboard.is_pressed('3'):
  88. skip_music()
  89. elif keyboard.is_pressed('4'):
  90. stop_music()
  91. # else:
  92. # print("输入不合法!")

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号