视频通话view旋转流程
2018-01-27 17:53
211 查看
1、com/android/incallui/InCallOrientationEventListener.java
手机设备旋转时回调的方法:
@Override
public void onOrientationChanged(int rotation) {
if (rotation == OrientationEventListener.ORIENTATION_UNKNOWN) {
return;
}
final int orientation = toScreenOrientation(rotation);
if (orientation != SCREEN_ORIENTATION_UNKNOWN && sCurrentOrientation != orientation) {
sCurrentOrientation = orientation;
InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
}
}2、com/android/incallui/InCallPresenter.java
回调onDeviceOrientationChanged:
@Override
public void onDeviceOrientationChanged(int orientation) {
mDeviceOrientation = orientation;
VideoCallUi ui = getUi();
if (ui == null) {
Log.e(this, "onDeviceOrientationChanged: VideoCallUi is null");
return;
}
Point previewDimensions = ui.getPreviewSize();
if (previewDimensions == null) {
return;
}
Log.d(this, "onDeviceOrientationChanged: orientation=" + orientation + " size: "
+ previewDimensions);
changePreviewDimensions(previewDimensions.x, previewDimensions.y);
ui.setPreviewRotation(mDeviceOrientation);
}4、com/android/incallui/VideoCallFragment.java
调用setPreviewRotation方法:
@Override
public void setPreviewRotation(int orientation) {
Log.d(this, "setPreviewRotation: orientation=" + orientation);
if (sPreviewSurface != null) {
TextureView preview = sPreviewSurface.getTextureView();
if (preview == null ) {
return;
}
preview.setRotation(orientation);
}
}
这里的setRotation其实就是View类的一个方法,用于旋转一个子view。
手机设备旋转时回调的方法:
@Override
public void onOrientationChanged(int rotation) {
if (rotation == OrientationEventListener.ORIENTATION_UNKNOWN) {
return;
}
final int orientation = toScreenOrientation(rotation);
if (orientation != SCREEN_ORIENTATION_UNKNOWN && sCurrentOrientation != orientation) {
sCurrentOrientation = orientation;
InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
}
}2、com/android/incallui/InCallPresenter.java
public void onDeviceOrientationChange(int orientation) { Log.d(this, "onDeviceOrientationChange: orientation= " + orientation); if (mCallList != null) { mCallList.notifyCallsOfDeviceRotation(orientation); } else { Log.w(this, "onDeviceOrientationChange: CallList is null."); } // Notify listeners of device orientation changed. for (InCallOrientationListener listener : mOrientationListeners) { listener.onDeviceOrientationChanged(orientation); } }3、com/android/incallui/VideoCallPresenter.java
回调onDeviceOrientationChanged:
@Override
public void onDeviceOrientationChanged(int orientation) {
mDeviceOrientation = orientation;
VideoCallUi ui = getUi();
if (ui == null) {
Log.e(this, "onDeviceOrientationChanged: VideoCallUi is null");
return;
}
Point previewDimensions = ui.getPreviewSize();
if (previewDimensions == null) {
return;
}
Log.d(this, "onDeviceOrientationChanged: orientation=" + orientation + " size: "
+ previewDimensions);
changePreviewDimensions(previewDimensions.x, previewDimensions.y);
ui.setPreviewRotation(mDeviceOrientation);
}4、com/android/incallui/VideoCallFragment.java
调用setPreviewRotation方法:
@Override
public void setPreviewRotation(int orientation) {
Log.d(this, "setPreviewRotation: orientation=" + orientation);
if (sPreviewSurface != null) {
TextureView preview = sPreviewSurface.getTextureView();
if (preview == null ) {
return;
}
preview.setRotation(orientation);
}
}
这里的setRotation其实就是View类的一个方法,用于旋转一个子view。
相关文章推荐
- WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程(转)
- Ios精品源码,tableview下载视频直播源播放器图片位置3D立体旋转相册屏风动画
- 手机视频通话软件开发流程
- 视频通话收到视频升级请求流程
- WebRTC VideoEngine超详细教程(一)——视频通话的基本流程
- WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程
- 手机开发中遇到关于QQ(普通版本)视频通话旋转问题总结:
- sip命令与音视频rtp通话完整流程分析
- WebRTC VideoEngine超详细教程(一)——视频通话的基本流程
- android videoview,旋转 视频 orientation,rotation 等
- WebRTC VideoEngine超详细教程(一)——视频通话的基本流程
- WebRTC VideoEngine超详细教程(一)——视频通话的基本流程
- WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程
- Ios精品源码,tableview下载视频直播源播放器图片位置3D立体旋转相册屏风动画
- WebRTC VideoEngine超详细教程(一)——视频通话的基本流程
- Android视图的绘制流程(上) View的测量
- iOS开发的一些小技术:让UIImage有缩放功能、控制log的输出、xcode修改文件注释、随机数的使用、在UIImageView 中旋转图像、在Quartz中如何设置旋转点、创建.plist文件并存储
- css3作3D旋转视频展示
- Android 使用MediaPlayer与SurfaceView进行视频播放