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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值