腾讯云直播SDKTXLivePlayer_音视频解决方案_同尘科技
功能视频播放器。介绍主要负责将直播流的音视频画面进行解码和本地渲染,包含如下技术特点:针对腾讯云的拉流地址,可使用低延时拉流,实现直播连麦等相关场景。针对腾讯云的拉流地址,可使用直播时移功能,能够实现直播观看与时移观看的无缝切换。支持自定义的音视频数据处理,您可以根据项目需要处理直播流中的音视频数据,然后进行渲染以及播放。SDK 仅支持 Android 4.2 以上的版本。
SDK 基础函数
TXLivePlayer
创建 TXLivePlayer 实例。
TXLivePlayer(Context context)
参数
参数 | 类型 | 含义 |
context | Context | 上下文。 |
setConfig
设置 TXLivePlayer 播放配置项。
void setConfig(TXLivePlayConfig config)
参数
参数 | 类型 | 含义 |
config | TXLivePlayConfig | 播放器配置项,请参见 TXLivePlayConfig。 |
setPlayListener
设置播放回调接口。
void setPlayListener(ITXLivePlayListener listener)
参数
参数 | 类型 | 含义 |
listener | ITXLivePlayListener | 播放器回调,请参见 ITXLivePlayListener。 |
播放基础接口
setPlayerView
设置播放器的视频渲染 View。
void setPlayerView(TXCloudVideoView glRootView)
参数
参数 | 类型 | 含义 |
glRootView | TXCloudVideoView | 视频渲染 View。 |
startLivePlay
播放器开始播放。
int startLivePlay(String playUrl, int playType)
参数
参数 | 类型 | 含义 |
playUrl | String | 播放的流地址。 |
playType | int | 播放类型。 |
返回是否成功启动播放, 0:成功;-1:失败,playUrl 为空;-2:失败,playUrl 非法;-3:失败,playType 非法;-5:licence 校验失败。介绍可播放的直播流连接:RTMP 直播流:PLAY_TYPE_LIVE_RTMP。FLV 直播流:PLAY_TYPE_LIVE_FLV。RTMP 加速流,用于连麦:PLAY_TYPE_LIVE_RTMP_ACC。说明 在 startLivePlay
之前,需要通过 V2TXLivePremier#setLicence
或者 TXLiveBase#setLicence
设置 License 后方可成功播放,否则将播放失败(黑屏),全局仅设置一次即可。直播 License、短视频 License 和视频播放 License 均可使用,若您暂未获取上述 License ,可 快速免费申请测试版 License 以正常播放,正式版 License 需 购买。
stopPlay
停止播放。
int stopPlay(boolean isNeedClearLastImg)
参数
参数 | 类型 | 含义 |
isNeedClearLastImg | boolean | true:清除;false:不清除。 |
返回0:成功;非0:失败。介绍isNeedClearLastImg 提供是否清除最后一帧画面的逻辑:推荐在正常停止播放时,进行清除。异常播放,如网络异常等,而您希望等待重连服务器,继续播放时,推荐保留。
isPlaying
是否正在播放。
boolean isPlaying()
返回true:正在播放;false:未播放。
pause
暂停播放。
void pause()
介绍停止获取流数据,保留最后一帧画面。
resume
恢复播放。
void resume()
介绍重新获取数据,获取当前直播数据。
setSurface
使用 Surface 模式用于本地渲染。
void setSurface(Surface surface)
参数
参数 | 类型 | 含义 |
surface | Surface | 视频渲染 surface。 |
说明目前仅支持硬解。使用该接口需要 setPlayerView(TXCloudVideoView) 传入 null。此功能为高级特性,除非您需要使用该特性,否则建议您使用 setPlayerView(TXCloudVideoView)。
setSurfaceSize
设置渲染 Surface 的大小。
void setSurfaceSize(int width, int height)
参数
参数 | 类型 | 含义 |
width | int | 宽。 |
height | int | 高。 |
说明Surface 大小变化后,需要重新设定。此功能为高级特性,除非您需要使用该特性,否则建议您使用 setPlayerView(TXCloudVideoView)。
播放配置接口
setRenderMode
设置播放渲染模式。
void setRenderMode(int mode)
参数
参数 | 类型 | 含义 |
mode | int | 图像渲染模式,可以设置值为:TXLiveConstants#RENDER_MODE_FULL_FILL_SCREEN、TXLiveConstants#RENDER_MODE_ADJUST_RESOLUTION。 |
介绍渲染模式有两种:平铺模式:视频画面将会按照比例铺满屏幕,多余部分会被裁减掉,此模式下不会有黑边。自适应模式:视频画面将等比例缩放,会居中显示,此模式可能会有黑边。
setRenderRotation
设置图像渲染角度。
void setRenderRotation(int rotation)
参数
参数 | 类型 | 含义 |
rotation | int | 图像渲染角度,可设置值为:TXLiveConstants#RENDER_ROTATION_PORTRAIT、TXLiveConstants#RENDER_ROTATION_LANDSCAPE。 |
介绍渲染角度有两种:竖屏:播放是竖屏播放的时候使用。横屏:播放是横屏播放的时候使用。
enableHardwareDecode
开启硬件加速。
boolean enableHardwareDecode(boolean enable)
参数
参数 | 类型 | 含义 |
enable | boolean | true:启用视频硬解码, false:禁用视频硬解码。 |
返回true:关闭或开启硬件加速成功;false:关闭或开启硬件加速失败。
setMute
设置是否静音播放。
void setMute(boolean mute)
参数
参数 | 类型 | 含义 |
mute | boolean | true:静音播放;false:不静音播放。 |
setVolume
设置音量。
void setVolume(int volume)
参数
参数 | 类型 | 含义 |
volume | int | 音量大小,取值范围 0 – 100。 |
setAudioRoute
设置声音播放模式。
void setAudioRoute(int audioRoute)
参数
参数 | 类型 | 含义 |
audioRoute | int | 声音播放模式,可设置值:TXLiveConstants#AUDIO_ROUTE_RECEIVER、TXLiveConstants#AUDIO_ROUTE_SPEAKER。 |
介绍播放模式有两种:听筒:声音将从听筒播出。扬声器:声音将从扬声器播出。
switchStream
FLV 多清晰度切换。
int switchStream(String playUrl)
参数
参数 | 类型 | 含义 |
playUrl | String | 播放的流地址。 |
介绍使用说明:必须是腾讯云的直播地址。必须是当前播放直播流的不同清晰度,切换到无关流地址可能会失败。
setAudioVolumeEvaluationListener
设置音量大小回调接口。
void setAudioVolumeEvaluationListener(ITXAudioVolumeEvaluationListener listener)
参数
参数 | 类型 | 含义 |
listener | ITXAudioVolumeEvaluationListener | 音量大小回调接口。 |
enableAudioVolumeEvaluation
启用音量大小评估。
void enableAudioVolumeEvaluation(int intervalMs)
参数
参数 | 类型 | 含义 |
intervalMs | int | intervalMs 决定了 onAudioVolumeEvaluationNotify 回调的触发间隔,单位为ms,最小间隔为 100ms,如果小于等于 0 则会关闭回调,建议设置为 300ms。 |
介绍开启后会在 onAudioVolumeEvaluationNotify 中获取到 SDK 对音量大小值的评估。
callExperimentalAPI
调用实验性 API 接口。
void callExperimentalAPI(final String jsonStr)
参数
参数 | 类型 | 含义 |
jsonStr | String | jsonStr 接口及参数描述的 JSON 字符串。 |
介绍该接口用于调用一些实验性功能。
本地录制和截图
setVideoRecordListener
设置录制回调接口。
void setVideoRecordListener(TXRecordCommon.ITXVideoRecordListener listener)
参数
参数 | 类型 | 含义 |
listener | TXRecordCommon.ITXVideoRecordListener | 接口。 |
startRecord
启动视频录制。
int startRecord(int recordType)
参数
参数 | 类型 | 含义 |
recordType | int | TXRecordCommon#RECORD_TYPE_STREAM_SOURCE |
返回0表示成功,非0表示失败。介绍目前录制格式仅支持录制直播流,TXRecordCommon#RECORD_TYPE_STREAM_SOURCE。
stopRecord
停止视频录制。
int stopRecord()
返回0表示成功,非0表示失败。
snapshot
播放过程中本地截图。
void snapshot(ITXSnapshotListener listener)
参数
参数 | 类型 | 含义 |
listener | ITXSnapshotListener | 截图回调。 |
自定义数据处理
setVideoRawDataListener
设置软解码视频数据回调。
void setVideoRawDataListener(final ITXVideoRawDataListener listener)
说明此功能会有一定的性能开销,特别是在高分辨率的情况下。除非您有特殊的需求,否则不建议您开启。
setAudioRawDataListener
设置音频数据回调。
void setAudioRawDataListener(ITXAudioRawDataListener listener)
参数
参数 | 类型 | 含义 |
listener | ITXAudioRawDataListener | 音频数据回调。 |
说明音频播放器会在播放数据的前一刻,调用此函数,同步回调将要播放的数据。请不要在函数内做耗时操作,否则会影响声音播放的流畅性。
ITXSnapshotListener
功能截图回调接口类。
onSnapshot
截图回调。
void onSnapshot(Bitmap bmp)
参数
参数 | 类型 | 含义 |
bmp | Bitmap | 当前视频图片。 |
ITXVideoRawDataListener
功能软解视频数据回调接口类。
onVideoRawDataAvailable
软解码器解出一帧数据回调一次。
void onVideoRawDataAvailable(byte [] yuvBuffer, int width, int height, int timestamp)
参数
参数 | 类型 | 含义 |
yuvBuffer | byte [] | I420 格式 YUV 数据。 |
width | int | 视频宽度。 |
height | int | 视频高度。 |
timestamp | int | 视频 PTS。 |
ITXAudioRawDataListener
功能音频原始数据接口类。
onPcmDataAvailable
音频播放数据回调,数据格式 :PCM。
void onPcmDataAvailable(byte [] buf, long timestamp)
参数
参数 | 类型 | 含义 |
buf | byte [] | pcm 数据。 |
timestamp | long | 时间戳。 |
介绍音频播放器会在播放数据的前一刻,调用此函数,同步回调将要播放的数据。因此在函数内部做耗时操作可能会影响播放。
onAudioInfoChanged
音频播放信息回调。
void onAudioInfoChanged(int sampleRate, int channels, int bits)
参数
参数 | 类型 | 含义 |
sampleRate | int | 采样率。 |
channels | int | 声道数。 |
bits | int | 采样点大小。 |
ITXAudioVolumeEvaluationListener
功能播放器音量大小回调。
onAudioVolumeEvaluationNotify
播放器音量大小回调。
void onAudioVolumeEvaluationNotify(int volume)
参数
参数 | 类型 | 含义 |
volume | int | 音量大小, 取值范围 [0,100]。 |
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?