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