首先声明,我不是小黑子,我不是小黑子!
作为一个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)
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我要搞点别的新东西去了 ,下次见!