使用双循环Buffer实现解码播放流媒体

最近公司需要做一个在BlackBreey上的流媒体播放器,原理是先访问WebService获得流媒体的URL,然后通过Http连接上流媒体进行播放,但是提供的流媒体的格式为FLV-AAC,不能在8900上直接播放,需要先解码为AAC然后进行播放。播放器线程直接连接流媒体边解码边下载,保证不了播放的连续性。甚至在网速好的情况下也不能达到连续播放。我采用的办法是同时启动3个线程,一个为播放线程,一个为下载线程,一个为解码线程。下载线程从流媒体网站上不断下载播放数据放入一个循环Buffer,讲其命名为downLoadBuf,解码线程从downLoadBuf中读取下载后的数据进行解码,解码后的数据放入另外一个循环Buffer,将其命名为playDataBuf,播放器线程直接从playDataBuf中读取数据进行播放。保证了播放的连续性。在网速正常的情况下可以一直连续播放。

相关文章

1.使用ajax调用varxhr;functioninvoke(){if(window.ActiveXO...
               好不容易把WebService服务器...
1新建一个工程项目用来做服务端增加一个MyService1类文件pac...
packagecom.transsion.util;importjava.io.BufferedReader;i...
再生产wsdl文件时重写描述文件1usingSystem;2usingSystem.Co...
一般情况下,使用eclipse自带的jax-ws生成webservice会自动生...