使用Python打造属于你的ikun音乐播放器,简直不要太好用
首先声明,我不是小黑子,我不是小黑子!
作为一个ikun,时刻都在想着我们家姐姐!
这不上次用Python做了一个ikun飞机大战,今天再给大家整活一手,Python tkinter开发一个专属ikun音乐播放器,这样就能时刻看到姐姐了。
咱们来看看效果
代码实现
今天要做的就是上面的简易音乐播放器
先导入需要用到的模块
import tkinter as tk from pygame import mixer import os
os模块是自带的,另外的两个都需要安装
做一个大小合适的窗口
root = tk.Tk() root.title('音乐播放器') root.geometry('440x570+200+200') root.mainloop()
这样就可以得到一个大小合适的窗口,然后再上个底色和图标
root.iconbitmap('music.ico') root['background'] = '#6175d6' img = tk.PhotoImage(file='img\\封面.png') tk.Label(root, image=img, bg='#6175d6').pack()
功能按键
frame_1 = tk.Frame(bg='#6175d6') frame_1.pack(pady=10) # 完整代码都放在这个抠裙了:708525271 tk.Button(frame_1, text='上一首', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack( side=tk.LEFT) tk.Button(frame_1, text='播放', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack( side=tk.LEFT, padx=40) tk.Button(frame_1, text='下一首', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat', command=next).pack( side=tk.LEFT) frame_2 = tk.Frame(bg='#6175d6') frame_2.pack(pady=10) tk.Button(frame_2, text='音量↑', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat' ).pack(side=tk.LEFT) tk.Button(frame_2, text='暂停', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack( side=tk.LEFT, padx=20) tk.Button(frame_2, text='继续', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat').pack( side=tk.LEFT, padx=20) tk.Button(frame_2, text='音量↓', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat' ).pack(side=tk.LEFT)
读取音乐
完善方向是加上排序功能,music是音乐文件夹 os.listdir 打开指定文件夹获取文件夹下所有文件名称
def music_list(): lists = [] for i in os.listdir('music'): if os.path.splitext(i)[-1] == '.mp3': lists.append(i) else: pass return lists def name_now(): # 当前播放音乐名称 name1 = music_list()[num] song_name = name1.split(' - ')[-1][:-4] singer = name1.split(' - ')[0] return name1, song_name, singer def play(): mixer.init() size = 0.5 name, song_name, singer = name_now() mixer.music.set_volume(size) mixer.music.load(f'music/{name}') mixer.music.play()
按键功能
音乐暂停/取消暂停
def stop(): mixer.music.pause() def cancel(): mixer.music.unpause()
切换音乐上一首
def last(): global num mixer.init() mixer.music.stop() if 0 <= num <= len(music_list()) - 2: num += 1 elif num >= len(music_list()) - 1: num = 0 name1, song_name, singer = name_now() song_name_va.set(f'{song_name}') singer_va.set(f'{singer}') play()
切换音乐下一首
def next(): global num mixer.init() mixer.music.stop() if 0 < num <= len(music_list()) - 1: num -= 1 elif num <= 0: num = len(music_list()) - 1 name1, song_name, singer = name_now() song_name_va.set(f'{song_name}') singer_va.set(f'{singer}') play() # place(x=20, y=550)
控制音乐音量增大
def soundsize_up(): global size if -0.1 < size < 1: size += 0.1 # print(size) # 验证音量 mixer.music.set_volume(size) else: size += 0 # print(size) mixer.music.set_volume(size)
控制音乐音量降低
def soundsize_down(): global size if 0 < size < 1.1: size -= 0.1 # print(size) mixer.music.set_volume(size) else: size -= 0 # print(size) mixer.music.set_volume(size)
完整效果展示
好了,今天的分享就到这里了,ikun我要搞点别的新东西去了 ,下次见!