[英]Continuously capture Android screen for processing in an app
我需要直播或某種方法來查看當前在屏幕上顯示的內容。 我不想截圖保存到文件,或在Android上的屏幕內容本地記錄等等。我不想畫面傳輸到另一個設備的視頻(我不是要截屏/ mirracast),我需要應用。
我為什么需要那個?
我想編寫一個Android應用程序,通過使燈光適應android設備上顯示的內容來管理lightpack。
如果您說無法完成,那就錯了。 如果您下載了適用於Android的Prismatik應用程序,您將准確地看到我想要的內容,它會抓屏並管理我的燈箱,抓屏時不會出現任何性能問題。 我只想創建自己的類似應用程序,除了將其設為開源GitHub項目...
編輯:我認為使用/ dev / graphics / fb0可能是答案的一部分。 我不知道使用它的性能如何。
我已經找到了自己問題的答案。
Android(也是Linux)具有一個幀緩沖文件(在Android上為/ dev / graphics / fb0 ),您可以讀取該文件,其中包含整個屏幕內容的當前幀緩沖。 在大多數情況下,它實際上將包含2個幀用於雙緩沖...此文件將隨着屏幕上內容的變化而不斷變化(對於我要使用的文件,這很好,我不需要對<毫秒的內容,我只需要粗略地知道屏幕上的什么顏色顯示)
該文件包含RAW格式的圖形。 在我的Galaxy S3上,每個像素包含4個字節。 如果您需要知道要讀取多少字節才能獲得當前屏幕(僅1幀),則需要進行數學計算。 我的屏幕是720x1280像素。
因此,我需要閱讀:
720 x 1280像素= 921,600像素
921,600像素*每個像素4個字節= 3,686,400字節
從中您可以提取每個顏色通道,並進行所需的計算。 讀取數據的方法實際上取決於您。 您可以編寫一些本機代碼來讀取緩沖區並進行操作。 或者,您可以使用輸入流從Android代碼讀取緩沖區。
根據設備上加載的ROM,您可能需要root才能訪問此文件(大多數情況下,您將需要root)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.