Page History

Player_live_status

Last edited by 谷俊

直播状态监听

1.1使用场景

只适用于ugc直播视频

1.2引入资源包

{project}/app/src/main/jinLibs/armeabi/libRongIMLib.so
{project}/app/src/main/jinLibs/armeabi-v7a/libRongIMLib.so 
{project}/app/src/main/jinLibs/arm64-v8a/libRongIMLib.so  {project}/app/src/main/jinLibs/x86/libRongIMLib.so

1.3配置AndroidManifest.xml

        <service
            android:name="io.rong.imlib.ipc.RongService"
            android:exported="true"
            android:process=":ipc" />
        <service android:name="io.rong.imlib.ReConnectService"
            android:exported="true"/>
        <receiver android:name="io.rong.imlib.ConnectChangeReceiver"
            android:exported="true"/>
        <receiver
            android:name="io.rong.imlib.HeartbeatReceiver"
            android:process=":ipc" />

1.4方法

VideoStatusUtil.setOnVideoPlayStatusCallback(IVideoStatus.VideoStatusCallback callback)
功能:设置直播状态的监听回调
注:此方法必须在initchannelId)之前调用,否则接收不到状态

VideoStatusUtil.init(String channelId)
功能:初始化直播的频道id

VideoStatusUtil.quit()
功能:退出直播状态监听

1.5直播状态监听回调方法使用

private IVideoStatus.VideoStatusCallback mOnVideoStatusCallback = new IVideoStatus.VideoStatusCallback() {
        @Override
        public void onStatusChange(int status) {
            switch (status) {
                case IVideoStatus.MEDIA_STATUS_LIVING:
                    //直播中'
                    canPlay = true;
                    if (videoView != null && !videoView.getPlayState())
                        videoView.reload();
                    ...//执行直播中的UI操作
                    break;
                case IVideoStatus.MEDIA_STATUS_LEAVE:
                    //主播暂时离开
                    canPlay = false;
                    if (videoView != null)
                        videoView.stop();
                    ...//执行主播暂时离开的UI操作
                    break;
                case IVideoStatus.MEDIA_STATUS_END:
                    //直播结束
                    canPlay = false;
                    if (videoView != null)
                        videoView.stop();
                    ...//执行直播结束的UI操作
                    break;
            }

        }

        @Override
        public void onError(int what,String extra) {
            //连接直播状态异常 输出what和extra供开发者调试用
        }
};