直播系統程式碼,強制點開全屏視訊時橫屏展示
直播系統程式碼,強制點開全屏視訊時橫屏展示實現的相關程式碼
螢幕方向旋轉
當系統狀態改變,需要重新更新方向時,就會呼叫
\frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java 會執行displayContent.updateRotationUnchecked() @Override public void updateRotation(boolean alwaysSendConfiguration, boolean forceRelayout) { updateRotationUnchecked(alwaysSendConfiguration, forceRelayout); } private void updateRotationUnchecked(boolean alwaysSendConfiguration, boolean forceRelayout) { ProtoLog.v(WM_DEBUG_ORIENTATION, "updateRotationUnchecked:" + " alwaysSendConfiguration=%b forceRelayout=%b", alwaysSendConfiguration, forceRelayout); Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateRotation"); long origId = Binder.clearCallingIdentity(); try { synchronized (mGlobalLock) { boolean layoutNeeded = false; final int displayCount = mRoot.mChildren.size(); for (int i = 0; i < displayCount; ++i) { final DisplayContent displayContent = mRoot.mChildren.get(i); Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateRotation: display"); final boolean rotationChanged = displayContent.updateRotationUnchecked(); Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); \frameworks\base\services\core\java\com\android\server\wm\DisplayContent.java /** * Update rotation of the display. * * @return {@code true} if the rotation has been changed. In this case YOU MUST CALL * {@link #sendNewConfiguration} TO UNFREEZE THE SCREEN. */ boolean updateRotationUnchecked() { return mDisplayRotation.updateRotationUnchecked(false /* forceUpdate */); }
強制橫屏
\frameworks\base\services\core\java\com\android\server\wm\DisplayRotation.java 修改updateRotationUnchecked(),直接返回 boolean updateRotationUnchecked(boolean forceUpdate) { if(true){ return true; } final int displayId = mDisplayContent.getDisplayId(); if (!forceUpdate) { if (mDeferredRotationPauseCount > 0) { // Rotation updates have been paused temporarily. Defer the update until updates // have been resumed. ProtoLog.v(WM_DEBUG_ORIENTATION, "Deferring rotation, rotation is paused."); return false; } \frameworks\base\services\core\java\com\android\server\wm\DisplayContent.java
修改 getOrientation(),直接返回橫屏,無視activity的android:screenOrientation屬性
否則可能會出現應用先豎屏再旋轉為橫屏的現象
/** * In the general case, the orientation is computed from the above app windows first. If none of * the above app windows specify orientation, the orientation is computed from the child window * container, e.g. {@link ActivityRecord#getOrientation(int)}. */ @ScreenOrientation @Override int getOrientation() { if(true){ return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; } mLastOrientationSource = null; if (mIgnoreRotationForApps) { return SCREEN_ORIENTATION_USER; }
以上就是直播系統程式碼,強制點開全屏視訊時橫屏展示實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2851896/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上直播系統原始碼,強制應用全域性橫屏或豎屏原始碼
- 短視訊開發app,Android 強制應用全域性橫屏或豎屏APPAndroid
- 一對一直播系統原始碼,點選觀看視訊時,自動自適應全屏原始碼
- 短視訊app開發,視訊、直播畫面跟隨手機橫屏、豎屏移動APP
- 短視訊直播系統開發直播短視訊程式搭建短視訊互動直播
- RK3568開發平臺Android 11強制所有應用橫屏展示Android
- Android 橫屏時禁止輸入法全屏Android
- 直播app系統原始碼,動態遇到視訊時開始自動播放APP原始碼
- 短視訊直播原始碼,DialogFragment全屏且半透明原始碼Fragment
- 直播系統搭建,判斷螢幕橫豎屏狀態
- 網路視訊直播系統開發,視訊解碼是如何實現的?
- 語音直播系統原始碼與視訊直播系統原始碼哪些區別原始碼
- 直播短視訊原始碼短視訊APP短視訊帶貨系統多商戶直播原始碼APP
- Flutter中如何強制某個頁面橫屏Flutter
- 檢測橫屏豎屏程式碼
- 視訊直播系統原始碼,登入平臺後在首頁保持長時間亮屏狀態原始碼
- 橫屏時候字型變大程式碼例項
- 短視訊app開發,點選視訊進行全屏播放APP
- 直播商城原始碼,商品展示分為視訊和圖片展示兩種方式原始碼
- 短視訊直播系統,選擇選項時,點選出現下拉框
- 線上直播系統原始碼,開屏首頁廣告點選跳過按鈕跳過倒數計時原始碼
- 視訊直播系統原始碼,react-hooks的頁面設定定時器原始碼ReactHook定時器
- 關於iPad應用強制橫豎屏問題iPad
- Android視訊直播、點播播放器哪家強?Android播放器
- 直播系統程式碼,linux date修改系統時間Linux
- 直播系統程式碼,Android獲取、設定鎖屏密碼Android密碼
- 視訊直播系統原始碼,倒數計時顯示,商品秒殺倒數計時原始碼
- 短視訊SEO霸屏系統原始碼,抖音獲客系統軟體,短視訊賬號矩陣系統。原始碼矩陣
- 短視訊系統原始碼,android 真正的全屏沉浸式體驗原始碼Android
- 匹配橫屏或者豎屏css程式碼例項CSS
- 不想橫屏看視訊?谷歌開源框架AutoFlip一鍵截出最精彩豎版視訊谷歌框架
- 直播原始碼網站,訊息圖示在收到訊息時展示訊息條數原始碼網站
- 短視訊直播原始碼,視訊計時效果,可隨時按鍵暫停原始碼
- 3┃音視訊直播系統之瀏覽器中通過 WebRTC 直播視訊實時錄製回放下載瀏覽器Web
- 直播app系統原始碼,對視訊新增擦拭去除效果APP原始碼
- 短視訊直播系統原生系統原生APP雙端APP
- 直播電商平臺開發,橫豎屏切換的方法
- 短視訊直播系統,接收到產生驗證碼請求時隨機生成驗證碼隨機