本文介绍Android应用端,直播播放器的使用流程。
使用流程
创建直播播放器。
配置播放器的渲染窗口并设置播放器回调。
按需配置播放器的其他参数。例如:软硬解码偏好、视频画面模式等。
调用QueryLiveStreaming接口获取IPC设备的直播开播rtmp地址,并作为数据源设置给播放器。
开始播放。
停止播放。
销毁直播播放器。
使用示例
// 构造播放器实例
LVLivePlayer player = new LVLivePlayer(getApplicationContext());
// 设置textureview,可使用SDK提供的带画面缩放的ZoomableTextureView组件, 画面不旋转
player.setTextureView(zoomableTextureView, LVVideoRotationMode.LV_VIDEO_ROTATE_0_CLOCKWISE);
// 设置必要的监听
player.setPlayerListener(new ILVPlayerListener() {
@Override
public void onError(LVPlayerError error) {
// 播放报错
}
@Override
public void onPlayerStateChange(LVPlayerState state) {
Log.d(TAG, "play state= " + state.name());
switch (state) {
case STATE_BUFFERING:
// 显示正在缓冲
break;
case STATE_IDLE:
break;
case STATE_READY:
// 隐藏正在缓冲
updatePlayInfo();
break;
case STATE_ENDED:
// 隐藏正在缓冲
break;
default:
break;
}
}
@Override
public void onRenderedFirstFrame(int elapsedTimeInMs) {
// 显示回调,elapsedTimeInMs为出图耗时
}
@Override
public void onVideoSizeChanged(int width, int height) {
// 宽高变化回调
}
@Override
public void onStandardSeiInfoUpdate(byte[] buffer, int length, long timeStamp) {
// 码流SEI数据帧回调
}
@Override
public void onVideoJitterBufferEmpty() {
}
});
// 设置数据源,数据源为从服务端下发的直播rtmp播放地址
player.setDataSource("rtmp://xx.xx.xx.xx/live", );23
// 设置解码策略为硬解码优先
player.setDecoderStrategy(LVDecoderStrategy.LV_DECODER_STRATEGY_HARDWARE_FIRST);
// 设置画面模式为保持宽高
player.setVideoScalingMode(LVVideoScalingMode.LV_VIDEO_SCALING_MODE_FIT);
// 设置播放停止时保留最后一帧画面
player.setPlayerStoppedDrawingMode(LVPlayerStoppedDrawingMode.LV_ALWAYS_KEEP_LAST_FRAME);
// 如果需要设置播放器的画面渲染模式为填充画面,取消下一行代码注释
// player.setVideoScalingMode(LVVideoScalingMode.LV_VIDEO_SCALING_MODE_FILL);
...
// 开始播放
player.start();
...
// 停止播放
player.stop();
...
// 释放播放器资源
player.release();
文档内容是否对您有帮助?