Android中如何实现无缝切码流
方式一: 1、通常一种切换码流方式,如系统播放器切换码流,先Stop,再Create Player,再onPrepare,再Start 方式二: 2、实际上还有一种无缝切换码流,如果是单实例播放器,点击切换码流时,不销毁播放器器,只是暂停解码。开始请求新的url中数据,比如下载了有1-2片TS流后,重新送给解码器,重新启动解码,然后渲染输出。达到无缝输出的效果。 方式三: 3、如果是多实例播放器,总的实现思路是:用两个MediaPlayer 两个 SurfaceView. 首先让一个Mediaplayer 播一个视频,一般播一个小视频,这样不占资源,这个MediaPlayer播放的时候,让它Stop在这里,可以让这个MediaPlayer 隐藏掉 ,注意不要Reset或者Release这个MediaPlayer 。然后可以让另外一个MediaPlayer 播放视频, 这个时候这个MediaPlayer 切换视频资源的时候就不会出现黑屏的现象。达到无缝效果,至于之间播放到哪个位置,很简单,可以用存储起来,另外一个MediaPlayer播放时,如果有去取下这个数据,起播后,SeekTo到对应位置。然后Start。一样是无缝。 方式四: 4、以前有参考过一个专利,思路是这样的(实际也是用了多实例): 视频流采集终端收到用户终端的规格切换请求后,保持原编码器实例继续运行