VR功能接入
更新时间:2023-08-01
接入准备
接入VR全景播放功能,需要使用播放器SDK高级版,并申请高级版License。
功能介绍
在高级版SDK中,提供了VR全景视频的渲能力,并且可通过陀螺仪进行视角变换。该能力由VRKit组件提供,请确保该组件已集成到你的APP中。
快速开始
1.初始化VRKit组件
mVrKit = new VRKit();
// 需要传入您申请的高级版证书LicenseID,ID可以在百度智能云控制台查看
mVrKit.init(mAppContext, "your-license-id");
2.设置目标View,并启动渲染
// 设置目标surface,VR渲染的内容将绘制到这个view上
VrRenderView view = new VrRenderView(context);
mVrKit.prepareWithTargetSurface(view);
mVrKit.start();
3.获取输入surface,将播放器输出的原始画面渲染到此surface上,
mediaPlayer.setSurface(mVrKit.getInputSurface());
4.在播放器准备就绪时和视频宽高发生变化时通知VRKit,典型场景是在播放器对应的回调中使用
public void onPrepared(IMediaPlayer mp) {
mVrKit.onPlayerPrepared();
}
public void onVideoSizeChanged(IMediaPlayer mp, int width, int height, int sarNum, int sarDen) {
mVideoWidth = mp.getVideoWidth();
mVideoHeight = mp.getVideoHeight();
mVrKit.onVideoSizeChanged(mVideoWidth, mVideoHeight);
}
5.释放,典型场景是随播放器的release调用
// 销毁,如果要重新使用,则需要重新init
mVrKit.release();
在播放器SDK Demo中的BDCloudVideoView类对上述流程有详细的展示,可以参考。
接口说明
VRKit类
接口名 | 描述 |
---|---|
void init(Context context, String appID) | 初始化,鉴权失败时会抛出异常 |
void release() | 销毁。如果要重新使用,则需要重新调用init |
void prepareWithTargetSurface(Surface surface) | 设置目标GLTextureView,VR渲染结果将绘制到此textureView上。 必须在init之后调用,否则抛出异常。 |
Surface getInputSurface() | 获取输入surface, 将原始画面渲染到此surface上。 必须在prepareWithTargetSurface之后调用,否则抛出异常。 |
void onPlayerPrepared() | 通知VRKit播放器已经准备就绪。 必须在prepareWithTargetSurface之后调用,否则抛出异常。 |
void onVideoSizeChanged(int w, int h) | 通知VRKit视频宽高发生了变化。 必须在prepareWithTargetSurface之后调用,否则抛出异常。 |
void start() | 开始渲染。 必须在prepareWithTargetSurface之后调用,否则抛出异常。 |
void pause() | 暂停渲染。 必须在prepareWithTargetSurface之后调用,否则抛出异常。 |