Python实现简易音频播放器
Posted LeBron Le
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现简易音频播放器相关的知识,希望对你有一定的参考价值。
1. 需要用到的Python库
- pygame
- tkinter
2. 简易UI设计
audio_player = Tk()
audio_player.title('Audio Player v1.0')
audio_player.geometry('100x100+570+200')
audio_player.maxsize(height=110, width=220)
audio_player.minsize(height=110, width=220)
3. 功能模块实现
3.1 选择音频文件进行播放
def selectFile():
file = filedialog.askopenfile(mode='r', filetypes=[('AudioFile', '*.mp3')])
global filePath
filePath = str(file).split("'")[1]
try:
playAudio()
except:
pass
3.2 控制音频播放、暂停
def changeText(text):
if text == 'play':
return 'pause'
if text == 'pause':
return 'play'
def playStop():
playBtn.config(text=changeText(playBtn.config('text')[4]))
if playBtn.config('text')[4] == 'pause':
mixer.music.unpause()
else:
if playBtn.config('text')[4] == 'play':
mixer.music.pause()
3.3 控制音频音量大小
这里可以定义一个全局变量x,初始化为值0.5。
def audioINC(y):
mixer.music.set_volume(y + 0.1)
global x
x += 0.1
def audioDEC(y):
mixer.music.set_volume(y - 0.1)
global x
x -= 0.1
3.4 播放器初始化等细节
def playAudio():
try:
mixer.init()
mixer.music.load(filePath)
mixer.music.set_volume(x)
playBtn.config(text='pause')
mixer.music.play()
except:
pass
4. 运行
frame = Frame(app)
frame.place(x=35, y=20)
openBtn = Button(frame, text='OpenFile', command=selectFile, width=8).grid(row=0, column=1)
audioDec = Button(frame, text='➖', command=lambda: audioDEC(x)).grid(row=1, column=0)
playBtn = Button(frame, text='...', command=playStop, width=8)
playBtn.grid(row=1, column=1)
audioInc = Button(frame, text='➕', command=lambda: audioINC(x)).grid(row=1, column=2)
restartBtn = Button(frame, text='Restart', command=playAudio, width=8).grid(row=2, column=1)
app.mainloop()
5. 简易音频播放器展示图
①点击“OpenFile”按钮可以打开本地音频文件
②“➖”和“➕”分别控制音量的减小和增大
③点击"Restart"按钮可以重新播放当前选中的音频
6. 总结
本文仅仅是实现了一个简易的音频播放器,UI极其简陋,为了仅仅是实现音频播放的功能,仅供学习参考。
Python实现 ---简易在线音乐播放器
最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过requests模块,get请求将数据获得,使用Json模块进行数据的解析,最终使用python的mp3play库进行对音乐的在线播放,以下是该程序的源码。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2016-12-28 21:03:21 4 # @Author : Donoy ([email protected]) 5 # @Link : http://www.cnblogs.com/Donoy/ 6 # @Version : $Id$ 7 8 from Tkinter import * 9 import tkMessageBox 10 import requests 11 import json 12 import urllib 13 import mp3play 14 import threading 15 import time 16 17 18 def createWnd(): 19 global root 20 global listBox 21 global text 22 23 root = Tk() 24 root.title(‘-- DMPlayer --默认搜索100条----来自网易云音乐---‘) 25 root.geometry(‘500x270+600+200‘) 26 27 text = Entry(font=‘宋体‘,width=36) 28 text.pack() 29 Button(root,text=‘搜索‘,width=18,command=searchM).pack() 30 31 listBox = Listbox(root, height=12,width=72) 32 listBox.bind(‘<Double-Button-1>‘,play) 33 listBox.pack() 34 35 root.mainloop() 36 37 def searchM(): 38 global m_List 39 itemCount = 100 40 41 if not text.get(): 42 tkMessageBox.showinfo(‘温馨提示‘,‘您可以输入以下内容进行搜索\\n1.歌曲名\\n2.歌手名\\n3.部分歌词‘) 43 44 #获得输入的歌名以及url 45 url = ‘http://s.music.163.com/search/get/?type=1&s=%s&limit=%s‘%(text.get(),itemCount) 46 47 #get请求 48 header = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36‘} 49 html = requests.get(url,header) 50 data = json.loads(html.text) 51 m_List = [] 52 53 try: 54 listBox.delete(0,listBox.size()) 55 for MusicData in data[‘result‘][‘songs‘]: 56 listBox.insert(END,MusicData[‘name‘] +‘------‘+‘(‘ +MusicData[‘artists‘][0][‘name‘] + ‘)‘) 57 m_List.append(MusicData[‘audio‘]) 58 except Exception as e: 59 print ‘查询过程出现错误,请重试‘ 60 61 62 def play(args): 63 try: 64 global mp3 65 sy = listBox.curselection()[0] 66 mp3 = mp3play.load(m_List[int(sy)]) 67 mp3.play() 68 #time.sleep(1000) 69 except Exception as e: 70 pass 71 72 73 def main(): 74 createWnd() 75 76 77 if __name__ == ‘__main__‘: 78 main()
程序运行结果如下图:
以上是关于Python实现简易音频播放器的主要内容,如果未能解决你的问题,请参考以下文章