模拟一个在线音乐播放程序

# 1, 使用C/S架构来进行设计,分别写出客户端和服务器程序

# 2,客户端链接服务器之后,服务器向用户提示可以选择的歌曲列表,用户选择后开始播放(音频文件存放在本地即可)

#思路是通过socketserver ,客户端发送指令到服务端,服务端连接数据库查到歌曲名字路径返回给客户端,客户端通过pygame模块查找到歌曲路径 播放歌曲

#创建数据表,插入歌曲名字和路径

CREATE TABLE t_music(

id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(32),

path VARCHAR(32)

)

SELECT * FROM t_music

INSERT INTO t_music(NAME,path) VALUE("味道","D:\\老男孩\\味道.mp3"),("世间美好与你环环相扣","D:\\老男孩\\世间美好与你环环相扣.mp3")

服务端:

import pymysql

import json

import socketserver

class MyServer(socketserver.BaseRequestHandler):

@classmethod

def conn(cls,name):

conn = pymysql.connect(host="localhost", user="root", password="123456", db="music", charset="utf8")

cur = conn.cursor()

sql = "select path from t_music where name="%s"" % name

cur.execute(sql)

data = cur.fetchall()

return data

@classmethod

def conn2(cls):

conn = pymysql.connect(host="localhost", user="root", password="123456", db="music", charset="utf8")

cur = conn.cursor()

sql = "select name from t_music"

cur.execute(sql)

data = cur.fetchall()

mydic = {}

lst = []

for i in data:

for j in i:

print(i[0])

lst.append(i[0])

for k, v in enumerate(lst):

mydic[k] = v

a = json.dumps(mydic)

return a

def handle(self):

while True:

data = self.request.recv(1024)

print("->client",data)

if data.decode() == "a":

# pass

self.request.send(self.conn2().encode())

else:

self.request.send(self.conn(data.decode())[0][0].encode())

socketserver.TCPServer.allow_reuse_address = True

server = socketserver.ThreadingTCPServer(("127.0.0.1", 8080), MyServer)

server.serve_forever()

客户端:

import socket

import json

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect(("127.0.0.1", 8080))

def broadcast(): # broadcast播放

import pygame

import time

pygame.mixer.init() #初始化

pygame.mixer.music.load(data1) # 通过路径path 加载

pygame.mixer.music.play() #在程序运行中会播放

# print("正在播放的歌曲:%s" % name)

time.sleep(100) #让程序保持运行状态

while True:

name =input("请输入a获取歌曲列表或歌曲名字播放:")

client.send(name.encode("utf-8"))

data1 = client.recv(1024).decode("utf-8")

if name =="a":

data2 =json.loads(data1)

print(data2)

else:

print(data1)

broadcast()

#使用 mixer 播放音效

#山楂树之恋 世间美好与你环环相扣 味道

python播放音乐-python 模拟(简易)音乐播放器相关推荐

  1. python+tkinter+threading制作多线程简易音乐播放器(自动播放,上一曲,下一曲,播放,暂停,实时显示歌曲名并能自动切换歌曲的功能)

    https://blog.csdn.net/qq_41962782/article/details/80106158 小弟是小白因大作业,在此博文的基础上,我增加了歌曲目录的选择,自动播放,实时显示歌 ...

  2. 我的Android进阶之旅------Android MediaPlayer播放mp3的实例--简易mp3播放器

    大家好我们今天研究的是Android中很重要也最为复杂的媒体播放器---MediaPlayer. Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上 ...

  3. Android简易音乐重构MVVM Java版-新增歌曲播放界面+状态栏黑科技(十七)

    Android简易音乐重构MVVM Java版-新增歌曲播放界面(十七) 关于 效果 新增歌曲播放界面 增加歌词view `LyricView` 修改ApiService 添加引用 添加SongPla ...

  4. python开发安卓盒子_python实现音乐播放器 python实现花框音乐盒子

    本文实例为大家分享了python实现音乐播放器的具体代码,供大家参考,具体内容如下 """这是一个用海龟画图模块和pygame的混音模块制作的简易播放器. 作者:李兴球, ...

  5. python播放在线音乐_Python实现在线音乐播放器

    最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口, ...

  6. python播放网络音乐_Python实现在线音乐播放器

    最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口, ...

  7. python播放网络音乐_Python实现在线音乐播放器示例

    这篇文章主要为大家详细介绍了Python实现在线音乐播放器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目 ...

  8. python编写音乐-python写的定时播放音乐

    import datetime import os import time import pygame from pygame import mixer from pygame.locals impo ...

  9. python 定时播放音乐_python写的定时播放音乐

    import datetime import os import time import pygame from pygame import mixer from pygame.locals impo ...

  10. PyQt5实现简易音乐播放器

    PyQt5实现简易音乐播放器 环境 vscode python 3.10.0 PyQt5 5.15.4 功能目标 能够读取本地的音乐文件,并实现播放的开关.曲目的切换和音量的加减 具体实现 新建一个文 ...

最新文章

  1. 10款人气暴涨的PHP开源工具
  2. 用c语言 简单实现JAVA里面的ArryList 功能,实现内存自动扩展
  3. 当 Flutter 遇见 Web,会有怎样的秘密?
  4. mysql数据库的逻辑架构和存储引擎
  5. Java 并发---ConcurrentHashMap
  6. 技术实践丨手把手教你使用MQTT方式对接华为IoT平台
  7. (五)nginx设置静态文件不记录日志
  8. 求生之路显示服务器指令,求生之路2控制台指令..doc
  9. [转载] Python里面numpy库中zeros()的一些问题
  10. 如何在Linux中安装Intel核显驱动?
  11. MySQL集群和主从复制分别适合在什么场景下使用
  12. ecplise里的run as里只有run configurations是怎么回事?
  13. G31主板WIN2003显卡驱动解决方案
  14. 学习写第一份在CSDN上的博客;
  15. 软件项目解决方案模板
  16. 四川大学计算机学院2020推免公示,2020四川大学计算机学院推免夏令营通知
  17. 在ubuntu16.04上安装suitecrm
  18. 微信公众号开发踩坑指南(1)——服务器验证与Token获取失败原因
  19. git命令将项目克隆到本地
  20. 关于苹果开发者证书的续费问题改动2021

热门文章

  1. fvdm 跟驰模型 matlab仿真_MATLAB数值计算在光学仿真和教学中的应用
  2. java下载好怎么验证_Java JDK下载、安装和验证
  3. 华为堡垒机_浪潮无线分析,华为云堡垒机
  4. BootStrap里面好看的背景色
  5. 使用jsp页面查看jvm使用情况
  6. 中山电子科技大学计算机学院分数线,电子科技大学中山学院
  7. jar包里java.lang.NoSuchMethodError异常,
  8. Mybatis中#{}与${}的使用
  9. 【Jetty】Jetty 的工作原理以及与 Tomcat 的比较
  10. 《TCP/IP详解卷1:协议》读书笔记