導航:首頁 > 操作系統 > android屏幕錄制源碼

android屏幕錄制源碼

發布時間:2023-03-19 21:15:15

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。

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

② android 錄制屏幕怎麼實現

使用原生功能進行屏幕錄制
第一步:下載 ADB工具包,並將其解壓縮到任意硬碟根目錄。由於屏幕錄制功能默認是隱藏的,因此需要 ADB 工具予以協助。
第二步:在手機設置中的「開發人員選項」中開啟「USB調試」,而後使用USB線將手機連接電腦。部分設備還需要允許 USB 調試授權。
第三步:按下「WIN鍵+R」,輸入「cmd」並回車,打開cmd命令符工具。
輸入存放根目錄的盤符(例如G:),回車。
輸入cd adb,切換到ADB工具文件夾
輸入adb shell,測試是否可以正常連接手機。若顯示 shell@XX:/ $(XX為機型名),則連接正常,按「Ctrl鍵+C」退出測試。
註:輸入命令後若提示 error:device not found ,可在電腦下載豌豆莢 ,打開USB調試後連接手機安裝驅動即可。
最後,輸入 adb shell screenrecord /sdcard/XXX.mp4 (XXX為視頻文件名,可自定義),開始錄制手機屏幕,視頻格式為 mp4,存放到手機sd卡中,默認錄制時間為180s,中途可按「Ctrl鍵+C」停止錄制。

③ 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屏幕內容

錄制Android屏幕內容的解決辦法

⑤ Android截屏、錄屏工具

有時候會用到顏色拾取器這樣的東西來查看屏幕上的顏色值,一直是用Pixolor這個軟體來看顏色的;很方便,點哪裡顯示哪裡,也沒有延遲,以為是什麼黑科技;我注意到一個細節,如果只是切換屏幕,顏色拾取器不會更新,只有移動拾取器才更新選中;可以確定是截屏來實現的了,那就簡單了,截屏獲取像素點的顏色值就好了

網上看了一下,截屏大概分為保存View為圖像和調用錄屏服務兩種辦法,錄屏是比較好的辦法,可以在APP外截屏,所以簡單的封裝了一下

Step 1. Add the JitPack repository to your build file

Step 2. Add the dependency

主要分為兩步,第一步是開啟錄屏;第二步就可以直接獲取截屏,返回Bitmap
截圖的過程錄屏是開啟的,錄屏開啟就可以進行截屏,操作完需要關閉錄屏
截屏過程很快,效果很好

如果是APP外截屏則開啟懸浮窗服務,可以通過操作懸浮窗進行截屏
參考文章: Android 截屏方式整理 、 Android錄屏(5.0+)

1.初始化一個 MediaProjectionManager

2.創建並啟動 Intent

3.在 onActivityResult 中拿到MediaProjection

4.設置VirtualDisplay將圖像和展示的View關聯起來。一般來說我們會將圖像展示到SurfaceView,這里為了為了便於拿到截圖,我們使用ImageReader,他內置有SurfaceView。

5.通過ImageReader拿到截圖

6.注意截屏之後要及時關閉VirtualDisplay ,因為VirtualDisplay 是十分消耗內存和電量的。

錄屏和截屏差不多,只是截屏的時候只是設置了一個ImageReader去獲取圖像數據,而錄屏是設置一個 SurfaceView 去接收內容,獲取視頻流,然後通過 MediaCodec 來實現視頻的硬編碼,然後保存為視頻文件

初始化錄屏的大小和碼率

開始錄屏,設置輸出文件

停止錄屏

參考文章: Android視頻錄制--屏幕錄制

1.在 AndroidManifest 中添加許可權,Android 6.0 加入的動態許可權申請,如果應用的 targetSdkVersion 是 23,申請敏感許可權還需要動態申請

中間操作和截屏一樣,就是准備開啟錄屏

5.創建虛擬屏幕,這一步就是通過 MediaProject 錄制屏幕的關鍵所在, VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR 參數是指創建屏幕鏡像,所以我們實際錄制內容的是屏幕鏡像,但內容和實際屏幕是一樣的,並且這里我們把 VirtualDisplay 的渲染目標 Surface 設置為 MediaRecorder 的 getSurface ,後面我就可以通過 MediaRecorder 將屏幕內容錄制下來,並且存成 video 文件

6.錄制屏幕數據,這里利用 MediaRecord 將屏幕內容保存下來

⑥ android 怎麼錄制手機屏幕

1首先我們要在我們自己的安卓手機中安裝一款可以進行屏幕錄像的軟體,通過這個軟來進行日常的視頻錄制並分享給我們的好友或者上傳到我們自己的視頻平台同樣可以獲得一定的收入;

2如圖我們通過搜索相關關鍵詞搜索我們想要的錄像軟體,或者通過手機助手找到我們今天要用的這個手機屏幕錄像軟體,並在自己的安卓手機上面進行下載安裝;

3返回手機桌面找到我們安裝好i的軟體如圖直接點擊打開;

4打開軟體後會如圖有三個選擇圖標,這個時候我們首先要做的是對這個軟體進行一個簡單的設置,主要設置我們錄制視頻的保存目錄和一些其它選擇項目設置

5在設置好後我們可以開始進行錄像了,這個時候我們點擊紅色區域即可開始進行錄像根據我們的思路來按步驟的進行錄像,注意不要在太吵的地方錄制。這個軟體同樣也會錄制聲音;

6在我們錄制完後,我們直接回到手機桌面再次點擊一個這個軟體。或者通過通知欄打開軟體同樣可以關閉軟體。在關閉後我們錄制的視頻會自己保存到我們設置的保存目錄下面

⑦ 如何錄制Android屏幕內容

谷歌從Android 4.4開始,就加入了對屏幕進行錄制的功能,只是當時錄屏僅是面向開發者的試驗功能,所以實用性不算很高。步入Android 5.0後,新版系統正式開放了API android.media.projection介面,這意味著無需ROOT,我們即可實現對手機屏幕進行錄制操作了。因此,本文內容僅限Android 5.0或更高版本的手機。
http://jingyan..com/article/4e5b3e19385ae891901e24be.html
圖文教程,請參考,按步驟進行操作

⑧ 如何使用Android Studio錄制手機屏幕操作並導出成GIF演示動畫

這個我知道,首先下載巧螞鬧錄屏大師,錄製成mp4,然後在window下面有一個視頻轉gif的軟體工具movietogif_setup1.2.4。使用這兩個就可以。以上內容來源於android學習手冊,360手機助手中下載,裡面有108個例子,源碼還有文檔孝罩。下面的截圖就是通過這物蘆種方式錄制的,請看:

⑨ 安卓手機怎麼錄制屏幕

方法一:一些安卓手機內置錄屏功能,可以下滑主屏幕,之後找到「羨和錄屏」圖標,點擊即可使用。

方法二:在應用商店下載錄屏軟體進行使用。

安卓手機使用方法:1、設置流量卡後可以打開流量提醒功能,方便實時查看流量使用情況。

2、最好不要使用充電寶給手機充電,有一定的安全隱患。

3、一些手機支持克隆模式,在換手機時可以快速將手機內容復制到另一部肆派告手機。

4、一些安卓手機支持雲存儲功能,可以在手機的設置界面找到,使用雲存儲可以節省手機的存儲空間,另外換新手機後,可以直接從雲端將數據備份到新手機。

資料拓展:Android使用skia為核心圖形引擎,搭配OpenGL/ESskia與LinuxCairo功能相當,但相較於LinuxCairo,skia功能還只是雛形的裂明。2005年Skia公司被Google收購,2007年初,SkiaGL源碼被公開,Skia也是GoogleChrome的圖形引擎。

⑩ 如何錄制Android屏幕內容

工具:

第三方安裝屏幕錄制工具

安卓手機

方法如下:州飢

  1. 下載屏幕錄像工具進行安裝,然後打開,打開後,可以點擊上面的三個齒輪進行配置

閱讀全文

與android屏幕錄制源碼相關的資料

熱點內容
抖音直播雲伺服器 瀏覽:627
一加7pro文件夾data 瀏覽:424
程序員淋雨 瀏覽:947
python輸出數字序列中的空格 瀏覽:78
怎麼將pdf文件大小 瀏覽:734
氧原子相對分子量演算法 瀏覽:988
加密機為什麼是安全的 瀏覽:451
單片機拼音輸入法 瀏覽:789
蘋果筆記本t2加密晶元怎麼打開 瀏覽:796
安卓如何把手機投屏至電視 瀏覽:739
方舟編譯器現在可提速哪些軟體 瀏覽:60
微信加密為什麼是黑屏 瀏覽:473
android去電狀態 瀏覽:604
蘋果13如何加密視頻 瀏覽:815
linuxweblogic緩存 瀏覽:69
雲伺服器不同地域 瀏覽:946
python鬧鍾怎麼打 瀏覽:686
虛擬主機伺服器有什麼區別 瀏覽:833
演算法與程序的奧秘章節檢測 瀏覽:379
找pdf 瀏覽:531