基于libmad 的简单MP3流媒体播放器的实现

热度0票  浏览22次 【共0条评论】【我要评论 时间:2009年8月12日 00:03

(} {4Z KU$M2B0  本文在 Fedora 5 Linux 下实现了一个基于 libmad 的 MP3 流媒体播放器。此流媒体播放器可以播放基于 HTTP 1.1 协议传输的 MP3 流媒体数据。

]e \U#F0

1NW(}M-TE0  1.介绍

.DI@.] \5kA$[0 私募社区 - 私募股权投资知识学习网 - www.simu001.cnZR [ w4gp_&B9b

  本文在 Fedora 5 Linux 下实现了一个基于 libmad 的 MP3 流媒体播放器。此流媒体播放器可以播放基于 HTTP 1.1 协议传输的 MP3 流媒体数据。私募社区 - 私募股权投资知识学习网 - www.simu001.cn&[#bd#C|'R/\

`5c] H;A0J0  基本原理是:从 HTTP 服务器获得 MP3 媒体信息,然后通过网络传输把 MP3 数据以数据流的形式接收到 MP3 流媒体播放器客户端,由客户端通过 libmad 解码 MP3 数据流,得到 PCM 音频数据,写入音频设备,播放音乐。本文的流媒体播放器只是实现了必要的简单功能,没有考虑太多情况。比如,没有考虑实时播放控制,这样的话就不能随意选取播放点进行播放。

9xfa.~;b0 私募社区 - 私募股权投资知识学习网 - www.simu001.cn"V.n0aXzJ_ X#Lh

  本文的 MP3 流媒体播放器创建两个线程,使用两个缓冲区保存 MP3 数据,可以一边下载数据,一边播放音乐。编译运行此 MP3 流媒体播放器需要安装 libmad (www.underbit.com/products/mad/) 以及 ALSA(Advanced Linux Sound Architecture) (http://www.alsa-project.org)相关的软件。ALSA包括4部分,分别是 sound driver, sound library , sound utilities 以及 tools。至少应该安装 sound driver, sound library 。编译程序时连接库的选项是:-lmad -lasound -lpthread。

:o{n8\2a ^3X@0 私募社区 - 私募股权投资知识学习网 - www.simu001.cn;puZJ0}L

  本文的 MP3 流媒体播放器使用双缓冲区,一个是数据接收缓冲区,另一个是数据解码缓冲区。主程序结构如下图所示,图中的蓝色线表示数据流向。

h`X^S,g0 私募社区 - 私募股权投资知识学习网 - www.simu001.cn7W X%U u&f8{9g%Dx

  图 1:MP3 流媒体播放器主程序结构图私募社区 - 私募股权投资知识学习网 - www.simu001.cn5W0b7wH]9Y0}i$v

/u)J y.G p6yLN0  

M6ef"}{r8a e0

v%P i4M#d&C)g4C)^0  2.libmad简介私募社区 - 私募股权投资知识学习网 - www.simu001.cn"}*yU Pgj

顶:0 踩:0
对本文中的事件或人物打分:
当前平均分:0 (0次打分)
对本篇资讯内容的质量打分:
当前平均分:0 (0次打分)
上一篇 下一篇
发表评论
换一张

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】

网络资源