发一个python写的简单的mp3播放器
2010-04-07 19:01
330 查看
发现python写一些简单的应用真的很方便。
这个播放器使用的库是pymedia,它的网址是:http://pymedia.org/
其实,这个播放器是根据其两个例子稍作修改而成的,基本上没有什么技术含量。这两个例子分别是:dump_wav.py和play_wav.py
倒是在安装pymedia的时候遇到一点麻烦,不知道为啥,LIBROOT/audio/libavcodec/dsputil.h总是编译出错,出错的函数是lrintf,后来发现好像在其它地方也没用到这个函数,于是把这个函数相关的代码删除,竟然奇迹般地编译通过了。
源码如下:
#! /usr/bin/python
'''
file: mp3player.py
author: rare
date: 2008/12/12
email: dux003#163.com
'''
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)
#-----------------------------------------------------------------
import sys
if len(sys.argv) != 2:
print "Usage: mp3player <filename>"
else:
playMP3(sys.argv[1])
#run it like this
#python mp3player.py test.mp3
这个播放器使用的库是pymedia,它的网址是:http://pymedia.org/
其实,这个播放器是根据其两个例子稍作修改而成的,基本上没有什么技术含量。这两个例子分别是:dump_wav.py和play_wav.py
倒是在安装pymedia的时候遇到一点麻烦,不知道为啥,LIBROOT/audio/libavcodec/dsputil.h总是编译出错,出错的函数是lrintf,后来发现好像在其它地方也没用到这个函数,于是把这个函数相关的代码删除,竟然奇迹般地编译通过了。
源码如下:
#! /usr/bin/python
'''
file: mp3player.py
author: rare
date: 2008/12/12
email: dux003#163.com
'''
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)
#-----------------------------------------------------------------
import sys
if len(sys.argv) != 2:
print "Usage: mp3player <filename>"
else:
playMP3(sys.argv[1])
#run it like this
#python mp3player.py test.mp3
相关文章推荐
- python实现的一个简单web应用
- Hello Python!用python写一个抓取CSDN博客文章的简单爬虫
- Python web入门:Django学习与实践二(简单页面实现和创建一个模板)
- 【转】一个简单的python socket编程
- Python用5行代码写一个自定义简单二维码
- 飘逸的python - 一个简单的AST(抽象语法树)
- 一个简单的python练习题
- Python学习笔记23:Django构建一个简单的博客网站(一个)
- 使用python的Flask实现一个简单RESTful API服务器端
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- Python之构建一个简单的web.py框架的服务器
- 一个简单的语义分析算法:单步算法——Python实现
- 目前大家对Python都有一个共识,就是他对测试非常有用,自动化测试里Python用途也很广,但是Python到底怎么进行自动化测试呢?今天就简单的向大家介绍一下怎么使用Python进行自动化测试
- 安卓第一课:通过一个简单的MP3播放器来认识安卓开发【上】
- 用一行python代码做一个简单的web服务器
- 使用python构建一个简单的发布系统
- 浅谈Python使用Bottle来提供一个简单的web服务
- python2.7_1.14_编写一个简单的回显客户端/服务器应用
- Python爬虫入门笔记:一个简单的爬虫架构
- 用python实现一个简单的测试用例