# 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,自行依赖腾讯超级播放器组件源码库