发一个python写的简单的mp3播放器
来源:互联网 发布:outlook邮箱 知乎 编辑:程序博客网 时间:2024/05/16 05:43
发现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
- 发一个python写的简单的mp3播放器
- Java写的一个mp3播放器
- 一个简单的MP3播放器
- 用Delphi写一个超级简单的(wav, mp3)播放器
- 利用 Gstreamer 写简单的MP3播放器
- python写的高逼格酷炫控制台mp3播放器
- 简单的MP3播放器
- 简单的MP3播放器
- GStreamer 编写一个简单的MP3播放器
- 使用GStreamer 编写一个简单的MP3播放器
- C#写的mp3定时播放器
- Mp3播放器(C写的)
- 一个Flex做的Mp3播放器
- 很多年前用Excel vba写的一个mp3音乐播放器
- 用python写的一个mp3的tag解析
- 基于Gstreamer和Gtk的一个简单的MP3播放器
- 基于 libmad 的简单 MP3 流媒体播放器的实现
- 基于 libmad 的简单 MP3 流媒体播放器的实现
- 男人女人(作者多半是个爱情受伤的女人)
- 1160 hdu(最大递增子序列)
- 从纯真ip数据库读取ip地址对应的地理信息的程序
- setCharacterEncoding---buffer---Locale
- 一个根据断点续传原理而实现的多线程下载的程序
- 发一个python写的简单的mp3播放器
- 【转】python函数参数的传递
- Asp2.0下Login.Aspx页面和VS2005登陆控件冲突问题
- 基础加密组件--Coder(测试代码)
- 道德经
- scons 使用说明简介
- 理学十大经典定理
- 教你如何注册dll文件
- 用工厂模式开发多数据库连接类