全网首个tk网络音乐播放器!支持歌词滚动!你看我吊不?

使用Python的tkinter库开发的一款网络音乐播放器,具备歌词滚动功能。包括爬取音乐、歌词操作、播放器实现、GUI界面设计及启动程序的详细步骤。虽有不足,如需源码可加入作者的技术交流群获取。
摘要由CSDN通过智能技术生成

 

这是一个用 Python 的 tkinter 库做的一个网络音乐播放器。我不说它的 UI 设计的有多好看,但是它的功能绝对是全站首个!坚持看到底,你不点赞算我输!

成果展示

程序截图
在这里插入图片描述

å¨è¿éæå¥å¾çæè¿°

前期准备

程序结构:
在这里插入图片描述

​​

所需第三方库(requirement.txt):

mutagen==1.45.1
pygame==2.0.1
requests==2.26.0
Pillow==8.3.1

安装:

pip install mutagen		# 查看歌曲长度
pip install pygame		# 播放音乐
pip install requests	# 爬取音乐
pip install pillow		# 显示图片

或者:

pip install -r requirements.txt

一、爬取音乐

下面的代码为 get.py 里的内容。

import requests

search_url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord'

search_headers = {
    'Referer': 'http://www.kuwo.cn/search/list?key=',
    'Cookie': '_ga=GA1.2.12......',
    'csrf': 'YO4OH2VYH1A'}

search_params = {
'key': 'str',   # 查找关键字
'pn': '1',  # 页数
'rn': '20', # 项数
'httpsStatus': '1',
'reqId': '6e028fc0-db8f-11eb-b6f5-ff7d54a57f2b'
}

from_url = 'http://www.kuwo.cn/url'
  
from_params = {
    'rid': '148526468', # 歌曲 rid
    'type': 'convert_url3',
    'br': '128kmp3',
}

lrc_url = 'http://m.kuwo.cn/newh5/singles/songinfoandlrc?musicId={rid}'

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.59'}

class Kuwo:
    def search_kuwo(self, kw):#
        search_params.update({'key': kw})

        response = requests.get(search_url,
                                params=search_params,
                                headers={**headers, **search_headers},
                                timeout=2,
                               ).json()

        datas = response.get('data', {}).get('list', {})

        result = [[r.get('name', ''),
                   r.get('artist', ''),
                   r.get('album', ''),
                   r.get('songTimeMinutes', ''),
                   r.get('pic', ''),
                   r.get('pic120', ''),
                   r.get('rid', '')]
                  for r in datas]

        return result

    def get_music_url(self, rid):#
        from_params['rid'] = rid
        url = requests.get(from_url, params=from_params, headers=headers, timeout=2).json()['url']

        return url

    def get_music_content(self, rid):
        url 
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个用Python编写的歌词滚动并且可以添加歌曲的可视化音乐播放器的基本实现: 1. 安装必要的库 首先需要安装以下库: - pygame:用于播放音乐和可视化 - tkinter:用于创建GUI界面 可以使用以下命令进行安装: ``` pip install pygame pip install tkinter ``` 2. 创建GUI界面 使用tkinter创建GUI界面,包括一个播放器区域、一个歌曲列表和一个歌词滚动区域。 ``` import tkinter as tk # 创建主窗口 root = tk.Tk() root.title("Music Player") # 创建播放器区域 player_frame = tk.Frame(root, width=500, height=200) player_frame.pack() # 创建歌曲列表 song_listbox = tk.Listbox(root, width=50, height=10) song_listbox.pack() # 创建歌词滚动区域 lyrics_scrollbar = tk.Scrollbar(root) lyrics_scrollbar.pack(side=tk.RIGHT, fill=tk.Y) lyrics_text = tk.Text(root, width=50, height=10, yscrollcommand=lyrics_scrollbar.set) lyrics_text.pack(side=tk.LEFT, fill=tk.BOTH) lyrics_scrollbar.config(command=lyrics_text.yview) root.mainloop() ``` 3. 添加歌曲和播放功能 使用pygame库添加歌曲和播放功能。 ``` import pygame pygame.init() # 添加歌曲 def add_song(): file_path = tk.filedialog.askopenfilename() song_listbox.insert(tk.END, file_path) # 播放歌曲 def play_song(): song_path = song_listbox.get(tk.ACTIVE) pygame.mixer.music.load(song_path) pygame.mixer.music.play() # 创建添加歌曲和播放按钮 add_button = tk.Button(player_frame, text="Add Song", command=add_song) add_button.pack(side=tk.LEFT) play_button = tk.Button(player_frame, text="Play", command=play_song) play_button.pack(side=tk.LEFT) ``` 4. 添加歌词滚动功能 通过读取歌曲文件中的歌词,实现歌词滚动功能。 ``` # 播放歌曲和歌词 def play_song(): song_path = song_listbox.get(tk.ACTIVE) pygame.mixer.music.load(song_path) pygame.mixer.music.play() # 读取歌词滚动显示 lyrics_file_path = song_path.replace(".mp3", ".txt") with open(lyrics_file_path, "r") as f: lyrics = f.readlines() for line in lyrics: lyrics_text.insert(tk.END, line) lyrics_text.see(tk.END) # 创建播放按钮 play_button = tk.Button(player_frame, text="Play", command=play_song) play_button.pack(side=tk.LEFT) ``` 这样,一个基本的歌词滚动并且可以添加歌曲的可视化音乐播放器就完成了。可以根据实际需要进行修改和完善。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值