v3.3.0
3.3.0
使用变更
发直播部分
1.
2.
3.
4.
5.
6.
7.
看直播部分
1.
2.
点播部分
1.
2.
文档变更
发直播部分
准备工作
<com.vhall.push.VHVideoCaptureView
android:id="@+id/cameraview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
发直播
private Broadcast getBroadcast() {
if (broadcast == null) {
//原有视频相关配置改由VHLivePushConfig 进行配置
VHLivePushConfig config = new VHLivePushConfig(param.pixel_type);
//可不设置
config.videoFrameRate = param.videoFrameRate;//帧率
config.videoBitrate = param.videoBitrate;//码率
Broadcast.Builder builder = new Broadcast.Builder()
.cameraView(mView.getCameraView())
.config(config)
.callback(new BroadcastEventCallback())// 直播事件回调
.chatCallback(new ChatCallback());//使用聊天,加上这个回调
broadcast = builder.build();
}
return broadcast;
}
直播回调
private class BroadcastEventCallback implements VHPlayerListener {
@Override
public void onStateChanged(Constants.State state) {
switch (state) {
case START:/** 直播开始*/
break;
case STOP:/** 直播停止*/
break;
}
}
@Override
public void onEvent(int eventCode, String eventMsg) {
switch (eventCode) {
case Constants.Event.EVENT_UPLOAD_SPEED:/** 推流速度 eventMsg kbps*/
break;
case Constants.Event.EVENT_NETWORK_UNOBS:/** 网络通畅 */
break;
case Constants.Event.EVENT_NETWORK_OBS:/** 网络异常*/
break;
}
}
@Override
public void onError(int errorCode, int innerErrorCode, String errorMsg) {
/**直播时发生错误回调,查看错误信息errorCode 错误码,innerErrorCode 内部错误码(一般为0),errorMsg 错误信息*/
}
}
状态码
状态码 | 描叙 |
---|---|
START | 直播开始 |
STOP | 直播停止 |
看直播部分
观看事件回调
/**
* 观看过程中事件监听
*/
private class WatchCallback implements VHPlayerListener {
@Override
public void onStateChanged(com.vhall.player.Constants.State state) {
switch (state) {
case START://开始播放(缓冲结束)
isWatching = true;
liveView.showLoading(false);
liveView.setPlayPicture(isWatching);
break;
case BUFFER://缓冲中
if (isWatching) {
liveView.showLoading(true);
}
break;
case STOP:
isWatching = false;
liveView.showLoading(false);
liveView.setPlayPicture(isWatching);
break;
}
}
@Override
public void onEvent(int event, String msg) {
switch (event) {
case com.vhall.player.Constants.Event.EVENT_DOWNLOAD_SPEED:
liveView.setDownSpeed("速率" + msg + "/kbps");
break;
case com.vhall.player.Constants.Event.EVENT_DPI_CHANGED:
//分辨率切换
Log.i(TAG, msg);
break;
case com.vhall.player.Constants.Event.EVENT_DPI_LIST:
//支持的分辨率 msg
try {
JSONArray array = new JSONArray(msg);
} catch (JSONException e) {
e.printStackTrace();
}
break;
case com.vhall.player.Constants.Event.EVENT_VIDEO_SIZE_CHANGED:
Log.i(TAG, msg);
break;
case com.vhall.player.Constants.Event.EVENT_STREAM_START:
//发起端开始推流(主播开始推流业务处理)
break;
case com.vhall.player.Constants.Event.EVENT_STREAM_STOP:
//发起端停止推流(主播停止推流业务处理)
break;
}
}
@Override
public void onError(int errorCode, int innerCode, String msg) {
switch (errorCode) {
case com.vhall.player.Constants.ErrorCode.ERROR_CONNECT:
/** 连接失败*/
break;
default:
watchView.showToast(msg);
}
}
}
状态码
状态码 | 描叙 |
---|---|
START | 开始播放 |
BUFFER | 正在缓冲 |
STOP | 停止播放 |
观看回放部分
api 'com.google.android.exoplayer:exoplayer-core:2.9.1'
api 'com.google.android.exoplayer:exoplayer-hls:2.9.1'
private class WatchCallback implements VHPlayerListener {
@Override
public void onStateChanged(Constants.State state) {
switch (state) {
case IDLE://待机状态
break;
case START://播放中
break;
case BUFFER://缓冲中
break;
case STOP://停止(等同PAUSE 可调用resume方法恢复播放)
break;
case END://播放结束(内容播放结束,恢复时默认从初始位置开始)
break;
}
}
@Override
public void onEvent(int event, String msg) {
switch (event) {
case Constants.Event.EVENT_DPI_LIST:
/** 服务器支持的视频分辨率列表*/
break;
case Constants.Event.EVENT_DPI_CHANGED:
/** 分辨率被切换为msg*/
break;
}
}
@Override
public void onError(int errorCode, int innerErrorCode, String msg) {
switch (errorCode) {
case Constants.ErrorCode.ERROR_INIT:
/** 初始化错误*/
break;
case Constants.ErrorCode.ERROR_INIT_FIRST:
/** 未初始化*/
break;
}
}
}
VideoScaleType 说明
Type | 描述 |
---|---|
Constants.VideoMode.DRAW_MODE_NONE | 铺满全屏 |
Constants.VideoMode.DRAW_MODE_FIT | 等比缩放居中 |
Constants.VideoMode.DRAW_MODE_FILL | 等比拉伸居中 |
状态码
状态码 | 描叙 |
---|---|
IDLE | 待机(PREPARING) |
START | 开始播放(STATE_READY) |
BUFFER | 正在缓冲 |
STOP | 停止播放(等同PAUSE 可调用resume方法恢复播放) |
END | 播放结束 |
错误码
错误码 | 描述 |
---|---|
-260 | 未初始化视频信息 |
-261 | 初始化视频信息错误 |
修改于 2025-05-27 11:08:19