使用双循环Buffer实现解码播放流媒体
2009-08-27 10:14
302 查看
最近公司需要做一个在BlackBreey上的流媒体播放器,原理是先访问WebService获得流媒体的URL,然后通过Http连接上流媒体进行播放,但是提供的流媒体的格式为FLV-AAC,不能在8900上直接播放,需要先解码为AAC然后进行播放。播放器线程直接连接流媒体边解码边下载,保证不了播放的连续性。甚至在网速好的情况下也不能达到连续播放。我采用的办法是同时启动3个线程,一个为播放线程,一个为下载线程,一个为解码线程。下载线程从流媒体网站上不断下载播放数据放入一个循环Buffer,讲其命名为downLoadBuf,解码线程从downLoadBuf中读取下载后的数据进行解码,解码后的数据放入另外一个循环Buffer,将其命名为playDataBuf,播放器线程直接从playDataBuf中读取数据进行播放。保证了播放的连续性。在网速正常的情况下可以一直连续播放。
相关文章推荐
- C# 使用WPF 用MediaElement控件实现视频循环播放
- UI基础--使用UIScrollView、UIPageControl、NSTimer实现图片循环播放
- Android 使用ViewPager实现图片左右循环滑动自动播放
- 使用VIEWPAGER+SURFACEVIEW实现视频的循环滑动播放(一)
- 使用DirectShow播放MP3,实现循环播放,显示播放进度
- vlc-android 中调用用libvlcjni.so实现流媒体播放,自己使用libvlcjni.so
- 使用ViewPager实现循环滚动播放图片广告
- 【手机变身无线音箱-WIFI流媒体传输】--音乐在PC和手机间双向播放-详解Android DLNA使用-使用DLNA实现不同设备间媒体共享
- linux 基于alsa 使用libmad 解码库实现MP3文件的播放
- 使用自己实现的Renderer Filter+GDI解码和播放视频
- Android使用MediaPlayer播放流媒体,支持远程以及本地流媒体,一行代码实现
- 使用setInterval函数实现简单图片循环播放
- Android实现使用流媒体播放远程mp3文件的方法
- linux下使用libmad库实现mp3文件的解码、播放
- 使用游标实现 mysql 存储过程中的循环
- C#实现使用API函数播放MP3等音频文件的类设计
- Android图片滚动,加入自动播放功能,使用自定义属性实现,霸气十足!
- javascript实现图片循环渐显播放的方法
- qtp 订票用户登录脚本参数化实现循环播放(自带的Flight订票系统)
- 基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面