鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

转屏功能开发

场景介绍

实现客户端横竖屏切换。

前提条件

视频流引擎启动成功。

开发流程

在orientationCallback回调函数,处理转屏功能。

编码实例

public void onVmiEngineEvent (int event, int reserved0, int reserved1, int reserved2, int reserved3, String additionInfo) {
    if (event == VideoEngine.VMI_ENGINE_EVENT_ORIENTATION_CHANGED) {
        engineOrientation = reserved0;
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
               setRotation(engineOrientation);
            }
         });
    }
}

private void setRotation(int rotation) {
        final int rota = rotation;
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (oritentation != rota) {
                    oritentation = rota;
                    switch (oritentation) {
                        case Surface.ROTATION_0:
                            // surfaceView  ui旋转
                            surfaceView.setScreenRotation(VideoEngine.Rotation.ROTATION0);
                            // 设置屏幕的方向
                            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                            break;
                        case Surface.ROTATION_90:
                            surfaceView.setScreenRotation(VideoEngine.Rotation.ROTATION90);
                            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

                            break;
                        case Surface.ROTATION_180:
                            surfaceView.setScreenRotation(VideoEngine.Rotation.ROTATION180);
                            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
                            break;
                        case Surface.ROTATION_270:
                            surfaceView.setScreenRotation(VideoEngine.Rotation.ROTATION270);
                            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
                            break;
                        default:
                            break;
                    }
                }
            }
        });
    }