Skip to content

Assist Part

贾俊辉 edited this page Jun 9, 2018 · 2 revisions

RelationAssist

关联助手是为了切播而设计的,此处的切播指的是播放视图的切换非资源切换。比如列表切全屏或者A页面切到B页面。RelationAssist是为了简化切换播放视图而设计的。

如果您有无缝切播的需求,请使用RelationAssist。

public class TestActivity extends AppcompatActivity{
    //...
    RelationAssist mAssist;
    ViewGroup view2;
    public void onCreate(Bundle saveInstance){
    	super.onCreate(saveInstance);
    	//...
        //初始化RelationAssist
    	mAssist = new RelationAssist(this);
        //设置事件处理助手
    	mAssist.setEventAssistHandler(eventHandler);
        //设置ReceiverGroup
    	mReceiverGroup = ReceiverGroupManager.get().getLiteReceiverGroup(this);
    	mAssist.setReceiverGroup(mReceiverGroup);
        //设置播放资源
    	DataSource dataSource = new DataSource();
        //如果您需要设置起播时间点,请设置在DataSource中
        dataSource.setStartPos(15000);
    	dataSource.setData("http://...");
    	dataSource.setTitle("xxx");
    	mAssist.setDataSource(dataSource);
        //关联视图容器
    	mAssist.attachContainer(mVideoContainer);
        //开始播放
    	mAssist.play();
    	//...
        //切播
    	switchPlay(view2);
    }
    //...
    private void switchPlay(ViewGroup container){
         //切播到另外的视图容器中播放
    	 mAssist.attachContainer(container);
    }
}

OnEventAssistHandler

事件处理助手,目的是为您处理基本的播放操作,比如暂停、恢复播放、重播,停止、重试等。

框架内默认已经定义了RelationAssist和BaseVideoView的事件处理助手OnAssistPlayEventHandler和OnVideoViewEventHandler

在您使用RelationAssist和BaseVideoView时需要分别设置上OnAssistPlayEventHandler和OnVideoViewEventHandler,默认的播放操作事件会自动对接处理。

如下代码:

mVideoView.setEventHandler(new OnVideoViewEventHandler(){
    @Override
    public void onAssistHandle(BaseVideoView assist, int eventCode, Bundle bundle) {
        super.onAssistHandle(assist, eventCode, bundle);
        switch(eventCode){
            //自定义的事件需要您在这里自行处理
            //....
        }
    }
});