# TXAVPushPlayer
**Repository Path**: xjdd/TXAVPushPlayer
## Basic Information
- **Project Name**: TXAVPushPlayer
- **Description**: 腾讯云推流播放器和拉流播放器控制器
- **Primary Language**: Android
- **License**: AGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 0
- **Created**: 2019-11-07
- **Last Updated**: 2025-08-28
## Categories & Tags
**Categories**: multimedia, android-modules
**Tags**: None
## README
##使用方法
1.`implementation "com.pince.maven:lib-lifecycleLiveTXAV:1.1.6" `引入播放器\n
2.推流继承或者直接使用包装好的推流器\n
```
```
推流用这个 startPush
预览用这个 startPreView 但是如有采用商汤等三方采集自定义推流的时候请不要使用这这个直接走
```
override fun sendCustomVideoData(data: ByteArray, w: Int, h: Int): Int {
return mLivePusher.sendCustomVideoData(data, RGB_RGBA, w, h)
}
```
或者
``` override fun sendCustomVideoTexture(data: Int, w: Int, h: Int): Int {
return mLivePusher.sendCustomVideoTexture(data, w, h)
}
```
3.播放器则继承或者直接使用\n
```
```
设置播放
```
livePlayer?.playAutoAdjust = PlayAutoAdjust.AutoMDOEL //设置播放模式 默认是极速模式
livePlayer?.setTXLivePlayConfig(false) //设置播放器的配置,在播放器播放连接之前设置,
livePlayer?.startPlay(playUrl) //播放器播放连接
livePlayer?.setRenderMode(TXLiveConstants.RENDER_MODE_FULL_FILL_SCREEN)
livePlayer?.addController(object : IPullPlayController {
override fun attachPlayer(livePlayer: ILivePlayer) {
}
override fun onNetStatus(bundle: Bundle) {
Log.e("TAG", "" + bundle.toString())
log.text = bundle.toString()
.replace("CPU_USAGE", "\n当前瞬时 CPU 使用率:")
.replace("VIDEO_WIDTH", "\n视频分辨率 - 宽:")
.replace("VIDEO_HEIGHT", "\n视频分辨率 - 高:")
.replace("NET_SPEED", "\n当前的网络的下载速度:")
.replace("VIDEO_FPS", "\n当前流媒体的视频帧率:")
.replace("VIDEO_BITRATE", "\n当前流媒体的视频码率,单位:kbps:")
.replace("AUDIO_BITRATE", "\n当前流媒体的音频码率,单位:kbps:")
.replace("VIDEO_CACHE", "\n视频播放缓冲区(jitterbuffer)大小,缓冲区越小越难以抵抗卡顿:")
.replace("AUDIO_CACHE", "\n音频播放缓冲区(jitterbuffer)大小,缓冲区越小越难以抵抗卡顿:")
.replace("SERVER_IP", "\n当前连接的服务器 IP:")
}
override fun onPlayEvent(event: Int, param: Bundle?) {
log.text = event.toString() + param?.toString()
}
})
```
#20200709 更新日志
1.添加TXPushPlayerExt推流的时候.获取推流状态,
2.修改预览方法,支持腾讯预览方法`startPreView(true)`表示默认腾讯相机采集以及预览`startPreView(false)`表示
使用自定义采集画面进行预览和推流,
3.增加`setVideoQuality()`方法表示动态设置推流画面质量
```
enum class VideoQualityType {
/**
* 标清
*/
SD,
/**
* 高清
*/
HD,
/**
* 超清
*/
FHD,
/**
* 连麦大画面
*/
LINKMACMAIN,
/**
* 连麦小画满
*/
LINKMACSUB
}
```
4.修复创建GLSurfaceView创建的时候不设置Renderer会导致指针异常.
5.LiteAVSDK_Professional_7.4.9211
#20200716 更新日志
1.增加推流器分辨率设置选型,
参考如下
```
findViewById(R.id.btnVideoResolution3).setOnClickListener {
(findViewById(R.id.pusher) as LifecycleTXPusher).mVideoResolution = TXLiveConstants.VIDEO_RESOLUTION_TYPE_1080_1920
(findViewById(R.id.pusher) as LifecycleTXPusher).setLivePushConfig(PushType.NONM)
}
findViewById(R.id.btnVideoResolution1).setOnClickListener {
(findViewById(R.id.pusher) as LifecycleTXPusher).setLivePushConfig(PushType.PK)
}
findViewById(R.id.btnVideoResolution2).setOnClickListener {
(findViewById(R.id.pusher) as LifecycleTXPusher).setLivePushConfig(PushType.NONM, TXLiveConstants.VIDEO_RESOLUTION_TYPE_320_480)
}
```
#20201230
修改播放器view的释放,解决播放器会残留上一个视频的最后一帧的bug.