python实现音乐播放器_【原创源码】用Python来实现一个简易的MP3播放器(采用酷我接口,包含接口分析)...

[Python] 纯文本查看 复制代码#!/usr/bin/env python

#coding:utf8

from __future__ import division

import os

import urllib

import urllib2

import re

import sys

reload(sys)

sys.setdefaultencoding('utf8')

wenjian = os.path.exists(os.getcwd() + "\\temp\\")

if wenjian == False:

os.mkdir(os.getcwd() + "\\temp\\")

a = raw_input(

"Please enter the operation instructions: \r\n1. Search music \r\n2. View music charts \r\n")

def baofang(ID):

gqurl = urllib2.urlopen("http://antiserver.kuwo.cn/anti.s?rid=MUSIC_" + ID

+ "&format=mp3&response=url&type=convert_url")

url = gqurl.read()

urllib.urlretrieve(url, os.getcwd() + '\\temp\\' + ID + '.mp3')

filename = os.getcwd() + '\\temp\\' + str(ID) + '.mp3'

print "Download to : " + filename

print "Exit, please press Ctrl + Alt keys."

playMP3(filename)

def playMP3(name):

import pymedia.audio.acodec as acodec

import pymedia.muxer as muxer

import pymedia.audio.sound as sound

import time, wave, string, os

name1 = str.split(name, '.')

# Open demuxer first

dm = muxer.Demuxer(name1[-1].lower())

dec = None

snd = None

s = " "

f = open(name, 'rb')

while len(s):

s = f.read(20000)

if len(s):

frames = dm.parse(s)

for fr in frames:

if dec == None:

# Open decoder

dec = acodec.Decoder(dm.streams[0])

r = dec.decode(fr[1])

if r and r.data:

if snd == None:

snd = sound.Output(r.sample_rate, r.channels,

sound.AFMT_S16_LE)

snd.play(r.data)

if type(snd) == 'pymedia.audio.sound.Output':

while snd.isPlaying():

time.sleep(0.05)

def search():

search = raw_input("Enter the song you want to search for:\r\n")

qwe = search.decode('gbk', 'replace')

url = "http://sou.kuwo.cn/ws/NSearch?type=all&catalog=yueku2016&key=" + urllib.quote(

qwe.encode('utf-8', 'replace'))

response = urllib2.urlopen(url)

data = response.read()

pattern = re.compile(

'''''',

re.S)

text = re.findall(pattern, data)

for element in text:

print(element.encode('cp936'))

ID = str(raw_input("Please enter the music you need to play ID:\r\n"))

baofang(ID)

return data

def catlist():

response = urllib2.urlopen(

"http://www.kuwo.cn/bang/content?name=%e4%b8%ad%e5%9b%bdTOP%e6%a6%9c")

data = response.read()

pattern = re.compile(

'''.*?''',

re.S)

text = re.findall(pattern, data)

for element in text:

print(element.encode('cp936'))

ID = str(raw_input("Please enter the music you need to play ID:\r\n"))

baofang(ID)

return data

switch = {'1': search, '2': catlist}

def f(a):

switch.get(a)()

f(a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值