赞
踩
功能的实现主要是基于pygame模块。
在实现功能之前,我尝试过很多python的音乐播放模块,还是pygame香。
话不多说,代码写的很清晰,直接上菜。
- # 音乐播放器
- import random
- import os
- import pygame
- import keyboard
-
- pygame.mixer.init()
-
- def menu():
- print("#########功能菜单#########")
- print("# 0.播放 #")
- print("# 1.暂停 #")
- print("# 2.继续 #")
- print("# 3.切歌 #")
- print("# 4.停止 #")
- print("##########################")
-
- def music_play(music):
- music_name = music
- try:
- pygame.mixer.music.load(r"D:/python_test/MUSIC/%s.mp3" % music_name)
- # print("\n正在播放: %s" % music_name)
- pygame.mixer.music.play()
- return music_name
- except Exception as e:
- print(e)
-
- def pause_music():
- print("暂停播放\n")
- pygame.mixer.music.pause()
-
- def unpause_music():
- print("继续播放\n")
- pygame.mixer.music.unpause()
-
- def stop_music():
- print("停止播放\n")
- pygame.mixer.music.stop()
-
- def skip_music():
- i = random.randint(0, len(music_list)-1)
- music_name = music_list[i]
- music_play(music_name)
-
- def get_music():
- # 获取当前文件所在的绝对路径
- file_path = os.path.split(os.path.realpath(__file__))[0]
- try:
- os.mkdir(file_path, "MUSIC") # 无MUSIC文件夹则创建
- except:
- pass
- music_path = os.path.join(file_path, "MUSIC")
- # music_path = './music'
- music_list = []
- f = os.listdir(music_path) # 获取所有的文件名列表
- for file_name in f:
- file_format = file_name[-4:]
- if file_format.lower() in (".mp3", ".wav"): # 只将其中的.mp3文件写入music_list
- music = file_name[:-4]
- music_list.append(music)
- return music_list
-
-
- '''
- if __name__ == "__main__":
- music_list = get_music()
- menu()
- while True:
- s = input("\n输入菜单序号:")
- if s == "0":
- music_name = random.choice(music_list)
- music_play(music_name)
- elif s == "1":
- pause_music()
- elif s == "2":
- unpause_music()
- elif s == "3":
- skip_music()
- elif s == "4":
- stop_music()
-
- else:
- print("输入不合法!")
- '''
-
- #改用实时监控键盘来控制,而不是输入控制
- if __name__ == "__main__":
- music_list = get_music()
- menu()
- while True:
- # s = input("\n输入菜单序号:")
- if keyboard.is_pressed('0'):
- music_name = random.choice(music_list)
- music_play(music_name)
- elif keyboard.is_pressed('1'):
- pause_music()
- elif keyboard.is_pressed('2'):
- unpause_music()
- elif keyboard.is_pressed('3'):
- skip_music()
- elif keyboard.is_pressed('4'):
- stop_music()
- # else:
- # print("输入不合法!")
-
-
-
-

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。