发布信息

用Python写一个不讲武德音乐播放器软件

作者:本站编辑      2023-12-01 02:34:00     49

最近刷到马大师的视频和音乐,觉得现在的年轻人真会玩。今天我们就写一个不讲武德音乐播放器。年轻人不讲武德,耗子尾汁,我大意了没有闪。先祭出大师的五连鞭,作为播放器的顶图。

我们主要做的是从文件夹读取MP3文件,用tkinter做软件界面。主要功能有播放、上一首、一首、音量调大调小、暂停、继续。

直接上代码。

1.导库

import tkinter as tkfrom tkinter import *from pygame import mixerimport os #os模块是自带的,另外的两个都需要安装

2.设计界面

root = tk.Tk()root.title('不讲武德音乐播放器')root.geometry('440x570+200+200')####root.iconbitmap('./mbg.ico')root['background'] = '#6175d6'img = tk.PhotoImage(file='./马大师.gif')tk.Label(root, image=img, bg='#6175d6').pack()frame_0 = tk.Frame(bg='#6175d6')frame_0.pack(pady=10)songname_label=Label(frame_0,textvariable=songname_txt,font=('黑体', 15),fg='#f6f5f3', bg='#000000').pack(side=tk.LEFT)frame_1 = tk.Frame(bg='#6175d6')frame_1.pack(pady=10)tk.Button(frame_1, text='上一首', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat',command=last).pack(side=tk.LEFT)tk.Button(frame_1, text='播放', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat',command=play).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',command=soundsize_up ).pack(side=tk.LEFT)tk.Button(frame_2, text='暂停', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat',command=stop).pack( side=tk.LEFT, padx=20)tk.Button(frame_2, text='继续', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat',command=cancel).pack( side=tk.LEFT, padx=20)tk.Button(frame_2, text='音量↓', font=('黑体', 15), fg='#f6f5f3', bg='#6175d6', relief='flat',command=soundsize_down).pack(side=tk.LEFT)root.mainloop()

3.定义读取文件夹音乐列表函数,获取音乐文件列表。

def music_list():    lists = []    for i in os.listdir('music'):        if os.path.splitext(i)[-1] == '.mp3':            lists.append(i)        else:            pass    return lists

4.定义当前音乐函数

def name_now():  # 当前播放音乐名称    name = music_list()[num]    song_name = name.split(' - ')[-1][:-4]    singer = name.split(' - ')[0]    songname_txt.set(name)    return name, song_name, singer

5.定义播放音乐函数

def play():    global song_name    mixer.init()    size = 0.5    name, song_name, singer = name_now()    songname_txt.set(name)    mixer.music.set_volume(size)    mixer.music.load(f'music/{name}')    mixer.music.play()

6.定义暂停音乐函数

def stop():    mixer.music.pause()

7.定义继续播放音乐函数

def cancel():    mixer.music.unpause()

8.定义上一首音乐函数

def last():    global num,name1    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()    print(name1, song_name, singer)
play()

9.定义下一首音乐函数

def next():    global num,name1    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)

10.定义音量调大函数

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)

11.定义音量调小函数

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)

操作演示视频:

拓展:感兴趣的朋友们可以自己继续丰富软件功能和考虑做界面。

看完案例的小伙伴们点个在看,顺便扫码帮忙关注一下呗,你的支持是我继续推新案例的动力。


相关内容 查看全部