自定义本地音乐播放器

from tkinter import *
from tkinter import filedialog
from tkinter import messagebox
from pygame.locals import *
import time
import pygame
import sys

# 初始化
pygame.init()

# 设置用于播放歌曲的列表
fileslist = []


def play():
    """ 播放歌曲 """
    pygame.mixer.music.unpause()


def pause():
    """ 暂停播放 """
    pygame.mixer.music.pause()


def stop():
    """ 停止播放 """
    pygame.mixer.music.stop()


def opensong():
    """ 打开歌曲路径 """
    filessonglist = filedialog.askopenfilenames()  # 打开多个文件
    if not filessonglist:  # 判断是否添加曲库
        messagebox.showwarning("音乐", "当前未选择歌曲")
        return
    for item in filessonglist:  # 添加到播放列表当中
        fileslist.append(item)
        listname = item.split('/')
        listsong.insert(END, listname[len(listname) - 1])


def quit():
    """ 关闭窗口 """
    root.quit()


def playcurrentsong(*args):
    """ 播放当前列表歌曲 """
    indexs = listsong.curselection()
    selectindex = int(indexs[0])
    pygame.mixer.music.load(fileslist[selectindex])
    pygame.mixer.music.play()


def frontsong():
    """ 上一首 """


def nextsong():
    """ 下一首 """


root = Tk()  # 创建窗口
root.Color = "red"
root.title("YTouchMusic")  # 标题
root.geometry('250x440')  # 设置窗口大小和位置
listsong = Listbox(root)  # 添加歌曲列表
listsong.pack(padx=5, pady=10, side=LEFT)  # 将列表放在左侧
listsong.bind("<<ListboxSelect>>", playcurrentsong)  # 点击列表,播放对应歌曲
'''menu = Menu()
me = Menu()#一级菜单
root.config(menu=me)#加入一级菜单
'''
root.attributes('-toolwindow', False,
                '-alpha', 0.9,  # 设置透明度
                '-topmost', True)
pygame.init()
pygame.mixer.init()
l = Label(root, text="YTouch - why")
l.pack()

'''相关button '''
btn_ChooseMusic = Button(root, text="选择文件", command=opensong)
btn_ChooseMusic.pack(padx=1, pady=12, side=RIGHT)
btn_Pause = Button(root, text="暂停播放", command=pause)
btn_Pause.pack()
btn_Continue = Button(root, text="继续", command=play)
btn_Continue.pack()
btn_Stop = Button(root, text="停止", command=stop)
btn_Stop.pack()
btn_Quit = Button(root, text="关闭", command=quit)
btn_Quit.pack()

root.mainloop()  # 必需组件

 

转载于:https://www.cnblogs.com/HUIWANG/p/11157553.html

要求: 基本功能实现(40分) 实现音乐文件的获取——获取方式自定 实现音乐播放、暂停、停止、上一首、下一首功能 实现音乐播放进度的控制 实现音乐播放模式的设定 实现摇一摇切换音乐的功能——音乐切换顺序自定 实现音乐文件的分享——至少要能使用短信和蓝牙两种方式分享,短信分享时必须提供用户输入手机号或者从通信录中直接获取两种方式,不得直接通过intent对象调用手机的相应功能 实现提高功能(20分) 实现音乐库的生成和管理——全盘扫描音乐文件、将扫描到的音乐文件保存到媒体库中 播放列表的管理——至少应包括生成播放列表、向播放列表中添加音乐文件、删除播放列表、按播放列表播放等功能 其他自定义功能——根据自己的喜好自行设计新功能 书写程序制作思路分析文档(40分) 程序制作思路分析文档必须包含如下内容: 列出本项目需要开发的功能 对每个功能进行功能分析,需要分析说明的内容包括: 要实现该功能需要解决哪些问题? 分别对每个问题进行分析,该问题是否能用某个知识或技能解决:如能,写出该知识点或技能点的使用;如不能,该问题又该分为哪几个子问题来解决。 需要提交的文件 本次项目的安卓工程 本项目生成的apk文件 描述程序制作思路的word文档 其他要求 本项目的安卓工程包名必须以“com.你的姓全拼名声母.”开始,例如: 冉超群的安卓工程中的包名都以“com.ranchq.”开头 注释的书写:每个类必须写明其实现的功能,每个方法必须写明其作用及方法中参数的意义。 本次期末项目在第六周周三进行效果展示,项目工程、apk文件和描述程序制作思路的word文档在周四下课时统一上交作为期末成绩的最终考核依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值