Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

互动直播横屏方案(主播以横屏为基准横屏推流) #84

Open
lingyunzhu opened this issue May 24, 2018 · 2 comments
Open

Comments

@lingyunzhu
Copy link

wechatimg28

我看了官方文档
如何旋转和裁剪画面 ,发现都是以竖屏为基准推流的,请问以横屏为基准,需要怎么样做?我目前这样做:
avRootView.setAutoOrientation(false);
avRootView.setRemoteRotationFix(270);//设置本地采集画面在远端上的角度
这样主播横屏推出去的流是就是横屏的。但是多人互动主播本地和观众端都会有各种方向错误的问题,目前就是在
avVideoView.setRecvFirstFrameListener中重写onFirstFrameRecved(int width, int height, int angle, String identifier),然后按照angle值判断然后旋转画面,但切换摄像头、切换大小视频(avVideoView)总是会有些问题?感觉自己的套路不对(这样做维护成本会很大),请问有没有更简便合理代价低的方法?

@xkazer
Copy link
Collaborator

xkazer commented May 24, 2018

《如何旋转和裁剪画面》这篇文档,是用于解决画面(显示控件与视频尺寸不匹配)一致问题的,这里与视频的旋转角度是无关(画面不一致时,旋转90度只是一种策略)的。

针对旋转问题,分两种情况:
一、自动旋转时方向调整
(1) 对于固定或无重力感应设备可以setDeviceRotation设置设备初始角度
(2) 对于非常规设备摄像头方向,通过下面两个接口来对视频方向进行纠正(视频上行方): setRemoteRotationFix 修正上行视频角度(以保证观众看到自己的视频正确)
setLocalRotationFix 修正本地预览画面角度

二、手动旋转时方向调整(setAutoOrientation为false)
不推荐这种,因为用户还需要自己去上行角度,下行渲染角度方案如下:
// 主播方设置上行视频角度
((AVVideoCtrl)ILiveSDK.getInstance().getVideoEngine().getVideoObj()).setRotation(90);

// 主播或观众设置,只影响本地
AVVideoView的setRotation来纠正渲染时的视频角度

@lingyunzhu
Copy link
Author

@xkazer 感谢您的回答,由于需求比较非常规,我目前是手动旋转的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants