# PanoLiveSDK_Android **Repository Path**: paibo_1/panolivesdk-android ## Basic Information - **Project Name**: PanoLiveSDK_Android - **Description**: 对外提供 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-14 - **Last Updated**: 2022-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PanoLive_SDK_Android #### 介绍 湃博直播AndroidSDK #### 集成流程 1. 复制 panolive-sdk-android及superplayerkit aar包 到module libs目录下 2. 添加依赖 implementation fileTree(dir: 'libs', include: ['*.aar']) 至module build.gradle 3. 添加SDK依赖系统及三方库 ``` //panolive依赖 //retrofit+协程 implementation 'com.squareup.retrofit2:retrofit:2.7.1' implementation 'com.squareup.retrofit2:converter-gson:2.7.1' implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1' //超级播放器依赖 implementation 'com.tencent.liteav:LiteAVSDK_Player:latest.release' implementation 'com.github.ctiao:DanmakuFlameMaster:0.5.3' implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'com.github.bumptech.glide:glide:4.12.0' implementation 'androidx.exifinterface:exifinterface:1.2.0' implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0' ``` 4.添加SDK所需权限 ``` ``` #### 调用流程 1. 初始化SDK(建议在application oncreate时调用) ``` override fun onCreate() { super.onCreate() //初始化SDK,注入APPID PanoLiveSDK.init(this,"") } ``` 2. SDK登录 内注入用户信息 ``` PanoLiveSDK.login(userid) ``` 3. 播放器view添加到播放界面 ``` ``` 4. 进入房间 ``` playerview.enterRoom(mRoomId) ``` 5. 设置监听 ``` playerview.setPanoPlayerViewCallback(object : PanoLivePlayerView.OnPanoPlayerViewCallback { override fun onEnterRoomSuccess(info: VideoInfo) {//进入房间成功 var statusStr = "" when (info.status) { PanoLivePlayerView.ROOM_STATE_LIVING -> { statusStr = "直播中" playerview.playWithRoomId() } PanoLivePlayerView.ROOM_STATE_PENDING -> { statusStr = "预约中" playerview.stopPlay() } PanoLivePlayerView.ROOM_STATE_END -> { statusStr = "直播结束" playerview.stopPlay() } PanoLivePlayerView.ROOM_STATE_VIDEO -> { statusStr = "回放" playerview.playWithRoomId() } } status.setText("房间状态:${statusStr}") } override fun onEnterRoomFailed(message: String) {//进入房间失败 Toast.makeText(this@RoomActivity, "进入房间失败!", Toast.LENGTH_SHORT).show() } override fun onRoomStateChanged(state: Int) { playerview.enterRoom(mRoomId) } override fun onStreamStateChanged(state: String) { var streamState = "无" when (state) { "active" -> { streamState = "推流中" } "inactive" -> { streamState = "主播暂时离开" } "forbid" -> { streamState = "直播间被封禁" playerview.stopPlay() } } stream.setText("流状态:${streamState}") } }) playerview.setPlayerViewCallback(object : SuperPlayerView.OnSuperPlayerViewCallback { override fun onStartFullScreenPlay() { } override fun onStopFullScreenPlay() { } override fun onClickFloatCloseBtn() { } override fun onClickSmallReturnBtn() { } override fun onStartFloatWindowPlay() { } override fun onPlaying() { } override fun onPlayEnd() { } override fun onError(code: Int) { } }) ``` 6.在进入房间成功的回调中,调用开始播放 ``` playerview.playWithRoomId() ``` #### 使用说明 1. PanoLiveSDK依赖腾讯超级播放器,如需要自定义播放界面,可删除superplayerkit.aar,自行依赖腾讯超级播放器组件源码库