---
title: 转屏功能开发
description: "实现客户端横竖屏切换。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/armnative/kunpengcpsvideo_16_0027.html
sourcePath: /source/zh/kunpengboostkithistory/2300/armnative/kunpengcpsvideo_16_0027.html
indexId: e06645f58dd4342b01e136fd12a4e7111eb1ae615d30949cc09aaa7fbfb215a677
---
# 转屏功能开发

#### 场景介绍

实现客户端横竖屏切换。


#### 前提条件

视频流引擎启动成功。


#### 开发流程

在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;
}
}
}
});
}
```
