UPnP媒体播放器的研究与实现
[09-14 01:03:59] 来源:http://www.88dzw.com 电子制作 阅读:8773次
文章摘要:下载一个开源的播放器,将其改造成媒体解码库。即将播放器的功能抽象成函数以供外界调用,主要函数如下: int decodestart(char*pBuffer):调用该函数开始播放,相当于原来播放器的play功能。pBuffer是一个公共缓冲区,存放已下载的媒体数据。 extem void Read(int*position):负责向公共缓冲区中装入已下载的媒体数据,position指针则对应于公共缓冲区中应装入的位置。由于一般下载的速度远大于解码速度,所以应注意装入新数据时不要将尚未解码的数据覆盖掉。 extern void Decode(int*Dposition):当外界
UPnP媒体播放器的研究与实现,标签:电子小制作,http://www.88dzw.com下载一个开源的播放器,将其改造成媒体解码库。即将播放器的功能抽象成函数以供外界调用,主要函数如下:
int decodestart(char*pBuffer):调用该函数开始播放,相当于原来播放器的play功能。pBuffer是一个公共缓冲区,存放已下载的媒体数据。
extem void Read(int*position):负责向公共缓冲区中装入已下载的媒体数据,position指针则对应于公共缓冲区中应装入的位置。由于一般下载的速度远大于解码速度,所以应注意装入新数据时不要将尚未解码的数据覆盖掉。
extern void Decode(int*Dposition):当外界调用该函数时开始解码,Dposition则指示对应于公共缓冲区的解码位置。
此外还有pause,resume,stop等函数,均对应于原播放器的相应功能。将已实现的媒体解码库添加到生成的UPnP框架,再在UPnP框架中相应的位置调用库文件中的函数以实现解码、播放控制。
3.3 播放控制功能实现
添加媒体解码库后。还需添加:数据流实时控制能力、根据播放器的状态发布消息。详细过程如下:
(1)设置传输地址 当控制节点从媒体服务器选定一首歌时,则触发设置传输地址(由媒体传输服务提供)这一动作。这时,如果播放器正在播放,首先要停止播放器的解码动作,为新歌曲的播放做准备。接下来,在播放器获得所选定歌曲的地址后(由控制节点提供),直接从媒体服务器中下载这首歌曲,在此项目中,播放器采用HTTP GET下载。下载前,还需对该URL进行判断,查看下载的是否为播放列表,如果是播放列表,就不能将其直接传给播放器,而要继续从播放列表提供的地址中得到第1首歌的URL,再从媒体服务器中下载。最后,调用函数SetLastChange发布自己的状态信息。
(2)数据流实时控制在下载的大小达到一定长度时,触发传输控制服务中Play这一动作,这时,主线程创建一个解码线程,该线程调用媒体解码库中的decodestart(char*pBuffer)函数,对存放在公用缓冲区中的数据进行解码并播放,进行同步控制,以免当网络出现拥塞或系统内存不足时,缓冲区中的播放指针超过下载指针而导致意外。如果选定的是含有多首歌曲的播放列表,则过程类似,只不过在一首歌曲播放完时会自动从媒体服务器端下载另一首歌曲,一边下载,一边播放。当用户点击next,previous时,首先检查之前保存的URL是否为播放列表,若不是,则输出错误信息;若是,则停止播放器的解码动作,撤销当前解码线程,为新歌的播放做准备。由播放列表得到下一首歌的地址和端口号,开始下载数据,并创建新的解码线程,最后,发布状态信息。 www.88dzw.com
所有的实际操作,如play,stop,pause,…,均与UPnP无关,它只实现消息传递。控制节点负责接收命令传递给播放器,再由播放器中的媒体解码库完成解码、播放、暂停、停止等功能。媒体服务器、控制节点、媒体播放器的互动如图1所示。
4 测试与分析
系统开发完成后,在两台同处于一个局域网的台式机上进行测试,测试流程如下:首先在一台机上启动Intel UP-nP工具集中的AVWizard程序,该程序其实就是媒体服务器和控制节点的合体,它既能提供媒体服务器的各种功能,也可提供控制点的功能。在另一台机上启动媒体播放器,AVWizard首先扫描网络中有无它所支持的设备,发现媒体播放器后,获得该播放器的设备描述文档,并显示播放器的名称。用AvWizard选定一首MP3,并将地址发送给指定的媒体播放器(UPnP MediaRender)。播放器开始从媒体服务器指定的地址下载MP3,下载到一定长度时开始播放,详细过程描述如下:
由图2可知,当AVWizard选定一首歌曲时,播放器输出
为:“Invoke:UPnPAVTransport_SetAVTransportURI…”。触发播放器中媒体传输服务中的设置传输地址这一动作.告诉播放器所需下载的媒体所在的URL和端口号,接着在AV Wizard中点击play时,可以看到图3中播放器输出为:“Invoke:UP-nPAVTransport_Play(0,1)”,触发播放器媒体传输服务中的play动作,开始下载要播放的内容,同时,播放器开始创建解
Tag:电子制作,电子小制作,维修教程知识 - 电子制作
《UPnP媒体播放器的研究与实现》相关文章
- › UPnP媒体播放器的研究与实现
- 在百度中搜索相关文章:UPnP媒体播放器的研究与实现
- 在谷歌中搜索相关文章:UPnP媒体播放器的研究与实现
- 在soso中搜索相关文章:UPnP媒体播放器的研究与实现
- 在搜狗中搜索相关文章:UPnP媒体播放器的研究与实现
编辑推荐
最新更新
- · 自制教室照明节电控制器
- · 双色音乐彩灯的制作
- · 三相交流电机缺相保护器
- · 声光控节能灯的制作
- · 同线电话转呼及互通器电路
- · 超低频信号发生器的制作
- · 自制热转印电路板
- · 警笛发声生器电路
- · 一款节能电路
- · 利用太阳能充电的旅行充电器
热门排行