更改 iOS 上的屏幕方向锁定

Changing the screen orientation lock on iOS

我知道过去曾解决过类似的问题,但我回到这个问题是因为我有一个我不知道如何处理的用例。

问题是这样的:我正在开发一个具有许多功能的应用程序,它必须始终保持纵向:到目前为止,没有什么困难。问题来自直播:通过使用本机接口,我实现了一个运行良好的流媒体解决方案。在这种情况下,由于全屏流式传输是应用程序必须横向使用的唯一情况,因此诀窍是将应用程序锁定为纵向:当直播者将手机 phone 置于横向位置时,所有观看流媒体的其他用户被迫横向旋转手机 phone 以正确观看流媒体。

至此似乎一切都解决了,但事实并非如此。当我想出这个解决方案时,我不知道的是,在流式传输期间必须可以使用聊天:这意味着移动 phones 必须真正面向横向。

整个问题的一个细节是原生接口我只用于流式录制,而播放时我在非原生模式下使用代号One MediaPlayer,因此可以自定义并插入到表单中如我所愿

由此可见,要通过直播进行聊天,我需要能够更改屏幕方向,将其解锁。我知道在 Android 上可以,而在 iOS 上则不行。

我从来没有做过这样的事情,我不知道如何处理这个用例。我什至不清楚我在哪里可以找到 space 进行横向聊天,似乎只有在纵向模式下才有可能。也许只有当用户将手机 phone 竖放时,虚拟键盘才可用,而当手机 phone 横向时,虚拟键盘将被隐藏。事实仍然是应用程序中的所有其他内容都必须纵向锁定。

希望收到有用的建议。谢谢!

可能会强制更改方向锁定,它需要重新创建视图,这可能会严重破坏某些东西,但如果您想深入了解本机实现代码,它可能会起作用。

一些用户使用的另一种解决方法是完全避免屏幕锁定并显示浮动通知:“请将设备旋转到横向”。当用户方向错误时。

iOS 上的锁定方向应该有效。自己没试过,但是我看到lockOrientation()方法是在iOS端口实现的,canForceOrientation() returns true在IOSImplementation.