導航:首頁 > 操作系統 > android屏幕錄制開發

android屏幕錄制開發

發布時間:2024-03-10 18:33:37

1. 安卓手機錄屏怎麼錄

如果使用的是華為手機,以華為nova5pro手機為例,方法如下:
一、使用組合鍵錄屏
同時按住電源鍵和音量上鍵啟動錄屏,再次按住結束錄屏。
二、使用快捷開關錄屏
1、從狀態欄向下滑出通知面板(可繼續下滑),點擊屏幕錄制,啟動錄屏。
2、點擊屏幕上方的紅色計時按鈕,結束錄屏。
3、進入圖庫查看錄屏結果。
三、使用雙指關節錄屏
1、使用指關節前,請進入 設置 > 輔助功能 > 快捷啟動及手勢 > 錄屏 ,確保錄屏開關已開啟。
2、雙指指關節稍微用力並連續快速地雙擊屏幕啟動錄屏,再次雙擊結束錄屏。
四、邊錄屏,邊解說
錄屏時,您還可以開啟麥克風,邊錄屏,邊解說。
啟動錄屏後,點擊麥克風圖標讓其處於開啟狀態,就可以同步記錄聲音。
當麥克風圖標處於關閉狀態時,此時僅可以收錄系統音(如:音樂)。如您不想收錄任何系統音,請在錄屏前將手機調成靜音並關閉音樂等媒體音。

2. android 5.0+ 屏幕錄制實現

Android 從 4.0 開始就提供了手機錄屏方法,但是需要 root 許可權,比較麻煩不容易實現。但是從 5.0 開始,系統提供給了 app 錄制屏幕的一系列方法,不需要 root 許可權,只需要用戶授權即可錄屏,相對來說較為簡單。本文是在參考了網路上其他錄屏資料後完成的, 感謝 。以下將介紹開發錄屏功能的一系列步驟以及實現過程中所遇到的一些需要注意的事項。

因為錄制用到麥克風,所以需要加上 AUDIO 許可權,

如果開發的 app targetApi 在 6.0 以上時,還需要動態獲取許可權。

這里先介紹 MediaProjectionManager , MediaProjectionManager 是系統提供的一種服務,當我們拿到這個服務對象,可以創建一個 Intent ,通過這個 Intent 可以啟動一個彈框樣式的 Activity,如果用戶授權了,那我們便可以繼續下一步屏幕錄制。需要說明的是,Intent 是去啟動另一個 Activity 的,有極少極少的機型是沒有對應的授權Activity 的,所以這里需要多加判斷,防止應用奔潰。

即使用戶授權了,同意錄制操作,仍然需要捕獲異常,因為有可能會出現這樣一種情況,就是用戶在同意錄屏的時候系統也正在錄屏,錄屏操作沖突了。

這一步是整個錄屏操作最為關鍵的一步!我們初始化了 MediaRecorder,設置了是山升否錄上聲音、錄屏文件格式、錄屏文件路徑、音視凱辯頻的編碼器、比特率、視頻幀率等
然後將在步驟 3 中的 resultCode 以及 data 作為必要的參數通過 MediaProjectionManager 創建 VirtualDisplay。VirtualDisplay 可以理解為虛擬的呈現器逗孫老,它可以捕獲屏幕上的內容,並將其捕獲的內容渲染到 Surface 上(Surace 由 MediaRecorder 提供,通過 getSurface() 方法得到),MediaRecorder 再進一步將其封裝處理為 Mp4 文件。

經過以上步驟 prepare 之後,當再次調用 MediaRecorder.start() 就可以開始錄屏了,這里同意也需要注意的時,調用 start() 方法開始錄屏之後,不能立即調用 stop()方法停止錄屏,否則會奔潰。測試在測試錄屏功能時立馬停止錄屏,應用奔潰,一直找不到原因。直到看到了源碼( API 26 )里的注釋

所以為了反正奔潰,在 stop 的時候捕獲異常,並且置空 MediaRecorder,下次錄屏的時候再重新生成 MediaRecorder。

由於知識水平有限,難免有錯誤遺漏,歡迎指正!項目地址為 屏幕錄制

3. android 4.4 怎麼實現屏幕錄制功能

你好!滿意請採納
Android系統如何錄制屏幕(錄製成mp4格式) 如果能將Android手機(或平板)的屏幕錄製成視頻文件,那是一件非常酷的事(iOS8已經提供了這一功能,能通過OSX直接在Mac上錄制iPad、iPhone的屏幕,windows沒試過,不知可不可以)。不過以前的方法都是通過截屏錄制的,效果極差。幸好Android4.4以上版本提供判知了這一功能。但無法在手機上直接啟動,需鏈鎮要通過adb使用命令行啟動。
大家可以進入shell。或乾脆直接用adbshell執行命掘喚消令。該命令是screenrecord,可以輸入screenrecord --help,看看幫助,如下所示。

Usage: screenrecord [options]
Android screenrecord v1.2. Records the device's display to a .mp4 file.
Options:

--size WIDTHxHEIGHT
Set the videosize, e.g. "1280x720". Defaultis the device's main
displayresolution (if supported), 1280x720 if not. For best results,
use a sizesupported by the AVC encoder.

--bit-rate RATE
Set thevideo bit rate, in bits per second. Value may be specified as
bits ormegabits, e.g. '4000000' is equivalent to '4M'. Default 4Mbps.

--bugreport

Addadditional information, such as a timestamp overlay, that is helpful
in videoscaptured to illustrate bugs.

--time-limit TIME
Set themaximum recording time, in seconds. Default / maximum is 180.

--verbose
Displayinteresting information on stdout.

--help
Show thismessage.
Recording continues until Ctrl-C is hit or the timelimit is reached.

從這些幫助信息可以了解到,screenrecord需要後面跟一個mp4文件名。最簡單的形式如下:
screenrecord /sdcard/game.mp4
但要注意,mp4要寫入的目錄必須是可寫的。
輸入完命令後,直接按回車,命令會被阻塞,默認什麼都不會輸出,這是正在錄制呢。操作手機的所有畫面都會被錄制下來。如果要輸出相應的信息,需要加--verbose命令行參數,加該命令行參數,整個錄制過程可能會輸出如下類似的信息。

Main display is 1080x1920 @60.00fps (orientation=0)
Configuring recorder for 1080x1920 video/avc at4.00Mbps
Content area is 1080x1920 at offset x=0 y=0

^CEncoder stopping; recorded 68 frames in 12 seconds
Stopping encoder and muxer
Executing: /system/bin/am broadcast -aandroid.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/test.mp4
Broadcasting: Intent {act=android.intent.action.MEDIA_SCANNER_SCAN_FILE dat=file:///sdcard/test.mp4 }
Broadcast completed: result=0
當然,可以跟很多選項,常用的就是--size(尺寸)、--bit-rate(比特率)和--time-limit(錄制最大時間)

尺寸默認是當前手機屏幕解析度、比特率是默認4Mbps、錄制時間默認是3分鍾(180秒)
screenrecord --time-limit 100 /sdcard/game.mp4
上面的命令最大可錄制100秒的視頻。如果想中途停止錄制,可按Ctrl C,終止錄制,game.mp4仍然會生成,但只會錄制從開始錄制到按Ctrl-C這段時間的視頻。

閱讀全文

與android屏幕錄制開發相關的資料

熱點內容
華為思科的配置命令 瀏覽:869
linux設置光碟啟動 瀏覽:359
程序員俱樂部注冊 瀏覽:17
洗潔精雞蛋盤解壓視頻 瀏覽:291
企業內網加密app 瀏覽:49
騰訊雲伺服器怎麼設置本地網路 瀏覽:623
日常程序員 瀏覽:513
哪個pe有bit加密功能 瀏覽:108
rust伺服器是用什麼ip 瀏覽:692
java隨機字元串生成 瀏覽:551
數碼寶貝編程人物 瀏覽:390
php多用戶建站系統 瀏覽:624
加密防盜地上栓價位 瀏覽:671
比澤爾壓縮機下載 瀏覽:420
深圳壓縮機製造公司 瀏覽:882
如何給u盤單獨文件加密碼 瀏覽:284
恆溫機故障源碼 瀏覽:418
如何打開管家婆伺服器支持者 瀏覽:266
安卓手機自帶瀏覽器有什麼用 瀏覽:532
老闆咨詢阿里雲還是獨立伺服器 瀏覽:814