【混合開發】Android+WebView視頻圖片播放硬件加速詳解

webview視頻播放出現白屏、藍屏、花屏、黑屏等等

但由于布局結構是android+webview+H5+本地視頻等。視頻播放導致的異常排查起來十分復雜且沒有原生的相關日志
于是需要給webview播放視頻進行硬件加速,剛開始以為是一件很簡單的配置而已。本著無經驗從頭開始的原則(雖然搞了十多年android開發)。從頭查資料核實,結果發現還真有些不一樣的說法和講究。資料只是資料,實際效果還是要看設備運行情況

硬件加速配置

Application 級別(全局)

在 AndroidManifest.xml 的 節點加一行:

<applicationandroid:hardwareAccelerated="true"... />

這個是常規配置,大家都知道

Activity 級別(單個界面)

<activityandroid:name=".YourActivity"android:hardwareAccelerated="true" />

這個是為了開啟webView里的視頻加速設置的,資料顯示如果要在webView里進行硬件加速Application和Activity都需要配置這個。

Java 代碼里動態打開,在 Activity.onCreate()早于 setContentView() 處寫

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {getWindow().addFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}

針對某個 View 硬件加速(可選)

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {someView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

在14以上的API默認都是打開的,但是國內的手機廠家會做哪些騷操作并不確定,所以還是加上硬件加速配置比較好

注意事項

? 硬件加速默認在 Android 4.0(API 14)及以上自動開啟,但 WebView 必須手動確認第 1 或第 2 步,否則會出現視頻黑屏、Canvas 異常等問題。
? 運行時標志位(第 3 步)不能關閉硬件加速,只能檢測或開啟;如想關閉需回退到 Manifest 配置或 setLayerType–確認是否關閉

后記

事實上按以上配置后,實際效果并沒有肉眼可見的改善,此方案只是基礎支撐,但視頻播放問題并不在硬件加速方面

好用的開發工具

推薦理由

postman在國內使用已經越來越困難:
1、登錄問題嚴重
2、Mock功能服務基本沒法使用
3、版本更新功能已很匱乏
4、某些外力因素導致postman以后能否使用風險較大
5、postman會導致電腦卡頓,而且使用的功能越多越慢,尤其是win電腦,太讓人郁悶了
出于以上考慮因此筆者自己開發了一款api調試開發工具SmartApi,滿足基本日常開發調試api需求

SmartApi
win版本不大于1M;運行消耗性能極低
macos 版本不大于100M;運行消耗性能極低

SmartApi只為開發服務

官網地址SmartApi

http://www.smartapi.site/

在這里插入圖片描述


舊版本已停止維護

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94707.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94707.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94707.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Allegro-DDR3實戰-差分對-等長設置-區域規則

本章內容&#xff1a; 一&#xff09;Allegro之DDR3設計 (實操干貨) 二&#xff09;規則設置具體步驟 DDR3信號表: (eg&#xff1a;鎂光MT41J256M16HA-15E) 數據信號 DQ[15:0] DQS[1:0] DM[1:0] DQ:雙向數據總線 DQS:數據選通&#xff0c;用于同步數據傳…

七牛云OSS空間復制遷移到另外一個空間

創新新的空間時存儲地區必須一致 訪問控制必須選擇公開 1、下載七牛的同步工具并解壓 qshell&#xff08;http://developer.qiniu.com/docs/v6/tools/qshell.html&#xff09; 2、解壓文件 3、運行cmd登錄到七牛賬號 qshell account 你的七牛AK 你的七牛SK 你的賬號 4、測…

windows中Qwen3?Coder 與 Claude Code 搭配使用

claude安裝命令 npm install -g anthropic-ai/claude-code環境變量配置 set ANTHROPIC_BASE_URLhttps://dashscope.aliyuncs.com/api/v2/apps/claude-code-proxy set ANTHROPIC_AUTH_TOKENyour-dashscope-apikey可能還需要配置自己的git環境變量 查看git安裝位置 按下Win S打…

thunar 文件管理器實現雙擊使用 nvim打開

archlinux 中thunar 文件管理器&#xff0c;如何實現雙擊使用 nvim打開查看。我用的是kitty 終端。 在 Arch Linux Thunar kitty nvim 的環境里&#xff0c;要實現 雙擊文件 -> 用 nvim 打開&#xff0c;你可以這樣配置&#xff1a;設置為默認應用 如果你想 雙擊直接用 n…

深度學習----卷積神經網絡實現數字識別

一、準備工作 導入庫&#xff0c;導入數據集&#xff0c;劃分訓練批次數量&#xff0c;規定訓練硬件&#xff08;這部分 import torch from torch import nn # 導入神經網絡模塊 from torch.utils.data import DataLoader # 數據包管理工具&#xff0c;打包數據 from torch…

鴻蒙Harmony-從零開始構建類似于安卓GreenDao的ORM數據庫(四)

目錄 一,查詢表的所有數據 二,根據條件查詢數據 三,數據庫升級 前面章節已經講解了數據庫的創建,表的創建,已經增刪改等操作。下面我們來講解一下數據庫的查詢以及升級操作。 一,查詢表的所有數據 先來看看官方文檔: query(predicates: RdbPredicates, callback: Asy…

20250829_編寫10.1.11.213MySQL8.0異地備份傳輸腳本+在服務器上創建cron任務+測試成功

0.已知前提條件: 10.1.11.213 堡壘機訪問 mysql 8.0 版本 密碼在/root/.my.cnf 備份腳本:/data/backup_mysql/mysql_backup.sh alarm_system:動環數據庫 exit_and_entry:出入境數據庫 logs:備份日志 project_cg_view_prod:采購跟蹤系統 all :數據庫整體備份 imip_ecb…

PostgreSQL 流復制與邏輯復制性能優化與故障切換實戰經驗分享

PostgreSQL 流復制與邏輯復制性能優化與故障切換實戰經驗分享 在高可用和數據安全愈發受到重視的生產環境中&#xff0c;PostgreSQL 復制技術是保障業務連續性的重要手段。本文結合真實生產場景&#xff0c;分享流復制&#xff08;Physical Replication&#xff09;與邏輯復制&…

Django開發規范:構建可維護的AWS資源管理應用

引言 在現代Web開發中,遵循一致的開發規范對于項目的可維護性和團隊協作至關重要。本文基于實際的AWS資源管理項目,分享一套經過實踐檢驗的Django開發規范,涵蓋模型設計、Admin配置、管理命令和工具類開發等方面。 模型開發規范 數據模型設計原則 良好的數據模型設計是應…

機器學習可解釋庫Shapash的快速使用教程(五)

文章目錄1 快速使用1.1 安裝1.2 三個簡單步驟快速入門1.2.1 步驟 1&#xff1a;準備模型和數據1.2.2 步驟 2&#xff1a;聲明并編譯 SmartExplainer1.2.3 步驟 3&#xff1a;可視化和探索1.2.4 啟動 Web 應用1.2.5 將解釋結果導出為數據2 Shapash的后端集成2.1 方法一&#xff…

如何在emacs中添加imenu插件

在配置文件中添加&#xff1a; ;; 刪除現有的包管理器配置&#xff08;如果有&#xff09;&#xff0c;然后添加以下&#xff1a;;; 初始化包管理器 (require package);; 清除現有的倉庫列表 (setq package-archives nil);; 添加正確的倉庫&#xff08;注意&#xff1a;使用 H…

Linux下的網絡編程SQLITE3詳解

常用數據庫關系型數據庫將復雜的數據結構簡化為二維表格形式大型&#xff1a;Oracle、DB2中型&#xff1a;MySql、SQLServer小型&#xff1a;Sqlite非關系型數據庫以鍵值對存儲&#xff0c;且結構不固定JSONRedisMongoDBsqlite數據庫特點開源免費&#xff0c;C語言開發代碼量少…

適配openai

openai 腳本 stream腳本import os from openai import OpenAIclient OpenAI(base_url"http://127.0.0.1:9117/api/v1",api_keyos.environ["ACCESS_TOKEN"], )stream client.chat.completions.create(model "Qwen/Qwen2-7B-Instruct",messages…

一天認識一個神經網絡之--CNN卷積神經網絡

CNN 是一種非常強大的深度學習模型&#xff0c;尤其擅長處理像圖片這樣的網格結構數據。你可以把它想象成一個系統&#xff0c;它能像我們的大腦一樣&#xff0c;自動從圖片中學習并識別出各種特征&#xff0c;比如邊緣、角落、紋理&#xff0c;甚至是更復雜的物體部分&#xf…

13 SQL進階-InnoDB引擎(8.23)

一、邏輯存儲結構&#xff08;1&#xff09;表空間&#xff08;ibd文件&#xff09;&#xff1a;一個mysql實例可以對應多個表空間&#xff0c;用于存儲記錄、索引等數據。cd /var/lib/mysql&#xff08;2&#xff09;段&#xff0c;分為數據段&#xff08;leaf node segment&a…

MTK Linux DRM分析(二十四)- MTK mtk_drm_plane.c

一、代碼分析 mtk_drm_plane.h 和 mtk_drm_plane.c 兩個文件,并生成基于文本的函數調用圖,我將首先解析文件中的主要函數及其功能,然后根據代碼中的調用關系整理出調用圖。由于文件內容較長,我會專注于關鍵函數及其相互調用關系,并以清晰的文本形式呈現。 文件分析 1. …

滾珠導軌如何賦能精密制造?

在智能制造發展的趨勢下&#xff0c;新興行業對高精度、高穩定性的運動控制需求激增。作為直線傳動領域的“精密紐帶”&#xff0c;滾珠導軌憑借低摩擦、長壽命、高剛性優勢&#xff0c;廣泛應用于精密傳動領域&#xff0c;成為產業升級的關鍵。新能源汽車制造領域&#xff1a;…

醫療 AI 的 “破圈” 時刻:輔助診斷、藥物研發、慢病管理,哪些場景已落地見效?

一、引言在科技迅猛發展的當下&#xff0c;醫療領域正經歷著深刻變革&#xff0c;人工智能&#xff08;AI&#xff09;技術宛如一顆璀璨新星&#xff0c;強勢 “破圈” 闖入&#xff0c;為醫療行業帶來了前所未有的機遇與活力。從輔助醫生精準診斷病情&#xff0c;到助力藥企高…

【項目思維】編程思維學習路線(推薦)

本篇博客是一份系統性、分階段的 編程思維學習路線圖推薦&#xff0c;從零基礎小白到系統架構級別&#xff0c;幫助你全面建立和提升編程思維能力。 &#x1f6a6; 階段 0&#xff1a;思維準備&#xff08;理解編程是什么&#xff09; &#x1f3af; 學習目標&#xff1a; 理…

vue3+antd實現華為云OBS文件拖拽上傳詳解

1、文件上傳核心流程 選擇文件??&#xff1a;用戶通過拖拽或點擊選擇文件手動觸發上傳??&#xff1a;點擊"確定"按鈕后開始上傳&#xff08;阻止自動上傳&#xff09;??獲取上傳憑證??&#xff1a;從后端獲取華為云OBS的上傳配置構建表單數據??&#xff1…