經過大量的搜索和實驗的日子,我還沒有找到一個直截了當的解決方案。在android上的應用程序屏幕錄製捕捉每秒15幀
我正在開發一個應用程序,用戶將與屏幕上的寵物進行交互,並且我想讓他將它保存爲視頻。
是否有任何「簡單」的方式來捕捉應用程序本身的屏幕?
我找到了一種解決方法(每秒保存一些位圖,然後將它們傳遞給編碼器),但看起來太重了。我甚至有每秒15幀的幀率快樂
這似乎是可能的,即有一個類似的應用程序,這樣做,它被稱爲「會說話的湯姆」
經過大量的搜索和實驗的日子,我還沒有找到一個直截了當的解決方案。在android上的應用程序屏幕錄製捕捉每秒15幀
我正在開發一個應用程序,用戶將與屏幕上的寵物進行交互,並且我想讓他將它保存爲視頻。
是否有任何「簡單」的方式來捕捉應用程序本身的屏幕?
我找到了一種解決方法(每秒保存一些位圖,然後將它們傳遞給編碼器),但看起來太重了。我甚至有每秒15幀的幀率快樂
這似乎是可能的,即有一個類似的應用程序,這樣做,它被稱爲「會說話的湯姆」
這真的取決於你實現你的「寵物的方式視圖」。你在畫布上畫畫嗎? OpenGl ES?正常的Android視圖層次?
無論如何,沒有神奇的「recordScreenToVideo()」就像其中一條評論所說的那樣。
您需要:
獲得代表你的 「幀」 位圖。 這取決於你如何實現你的視圖。如果您自己繪製(Canvas或OpenGL),則將原始像素緩衝區保存爲幀。 如果您使用普通視圖層次結構,請將Android的onDraw子類化並保存在畫布上的「幀」。系統調用onDraw的頻率不會低於屏幕的實際「幀率」。如果需要,之後複製幀以提供15fps的視頻。
編碼你的幀。似乎你已經有一個機制來做到這一點,你只需要它更有效率。您的位圖(幀)和編碼後
方法可以優化編碼。只有當您的預期視頻相對較短時,纔會使用 ,否則 您將無法使用存儲空間。
希望幫助
你有實際記錄屏幕?或者,您是否可以基於錄製用戶輸入/寵物狀態來呈現視頻,該狀態看起來與屏幕完全一樣,而無需實際進行屏幕捕獲? –
「有沒有」簡單「的方法來捕捉應用程序本身的屏幕?」 - 你爲什麼要這樣做,而不是直接創建一個位圖的所需內容?當您在Photoshop等圖像編輯器中保存圖像時,您是否認爲該應用會截圖並保存該圖像? – CommonsWare
你使用OpenGL渲染你的寵物嗎?你可以在每幀之後使用'glReadPixels()'來獲取數據,然後使用它來做任何你想要的。是的,這個建議與您提到的「解決方法」基本相同。我認爲Android沒有內置任何神奇的「recordScreenToVideoFile()」,因此抓取幀並對它們進行編碼可能是您將要獲得的最佳效果。 –