android錄制
❶ 安卓手機如何開錄屏
vivo手機屏幕錄制的方法如下:
區域錄制:
屏幕頂部下滑/底部上滑調出控制中心,找到「超級截屏」,選擇「區域錄制」--可根據自身需求拖動邊緣區域調節錄屏區域大小--錄視頻,即可開始當前屏幕的錄制,點擊屏幕上的紅色按鈕可停止錄制,並保存錄制屏幕的視頻文件。
全屏錄制:
屏幕頂部下滑/底部上滑調出控制中心,找到「超級截屏」,選擇「錄制屏幕」,即可開始當前屏幕的錄制,點擊屏幕上的紅色按鈕可停止錄制,並保存錄制屏幕的視頻文件。
開啟錄制聲音:
進入設置--系統管理/快捷與輔助-- 超級截屏--錄制聲音--可選擇系統播放音/麥克風聲音/系統播放音和麥克風聲音,在屏幕錄制時,可以錄制聲音。
❷ Android調用系統相機實現拍照和視頻錄制
(1)申請許可權
(2)設置布局
這里做了一個簡單的布局:添加了一個按鈕和一個ImageView控制項用於顯示拍攝的圖像。
(3)為按鈕添加點擊事件監聽
點擊按鈕時,調用系統相機進行拍照,並在確定後將圖像顯示在ImageView控制項中。
(1)申請許可權
(2)設置布局
添加了一個按鈕和一個VideoView控制項用於顯示錄制的視頻。
(3)為按鈕添加點擊事件監聽
同前面一樣,點擊按鈕後調用系統相機進行錄制視頻,錄制完成後點擊確定即可將錄制的視頻顯示在VideoView控制項中。
對於Android11.0的版本,在調用系統相近進行視頻錄制的時候,即使在AndroidMenifest.xml中申請了CAMERA許可權,還是會在程序運行時報錯: Permission Denial , . .... .... with revoked permission android.permission.CAMERA
解決方法是在程序中動態申請許可權:
寫在最後:文章是在學習過程中做的學習筆記,同時與志同道合者分享,文章內容均經過我自己實驗證實可行,如有問題歡迎留言,很高興一起交流討論,共同進步!
❸ 安卓手機如何進行錄屏操作
如果您使用的是華為手機,以華為nova 7 pro手機為例:
一、使用快捷開關錄屏
1、從狀態欄向下滑出通知面板(可繼續下滑),點擊屏幕錄制,啟動錄屏。
2、點擊屏幕上方的紅色計時按鈕,結束錄屏。
3、進入圖庫查看錄屏結果。
二、使用組合鍵錄屏
同時按住電源鍵和音量上鍵啟動錄屏,再次按住結束錄屏。
三、使用雙指關節錄屏
1、使用指關節前,請進入 設置 > 輔助功能 > 快捷啟動及手勢 > 錄屏 ,確保錄屏開關已開啟。
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。
由於知識水平有限,難免有錯誤遺漏,歡迎指正!項目地址為 屏幕錄制
❺ 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錄制視頻,可限制時長,限大小
Android 錄制視頻:
public static voidrecordVideo(Context context, intlimit_time, intsize) {
Intent intent =newIntent();
intent.setAction(MediaStore. ACTION_VIDEO_CAPTURE );
intent.putExtra(MediaStore. EXTRA_VIDEO_QUALITY ,1);
intent.addCategory(Intent. CATEGORY_DEFAULT );
if(size !=0) {
//大小限制是long型,int 型無效,所以後邊要寫一個L
intent.putExtra(MediaStore. EXTRA_SIZE_LIMIT ,size *1024*1024L);//限制錄制大小(10M=10 * 1024 * 1024L)
}
if(limit_time !=0) {
intent.putExtra(MediaStore. EXTRA_DURATION_LIMIT ,limit_time);//限制錄制時間(10秒=10)
}
File videoFile =createVideoFile(context);
if(videoFile !=null) {
intent.putExtra(MediaStore. EXTRA_OUTPUT ,Uri.fromFile(videoFile));
context.startActivityForResult(intent, CAPTURE_VIDEO_CODE );
}
}
❼ 【Android】使用CameraX實現拍照和錄制視頻
AndroidX是Jetpack包下的組件,谷歌幫你考慮好了很多細節,用就完事了。這些細節想自己設置的話也可以,不設置使用默認值照樣很舒服。
在 Manifest 的 manifest 節點下中加入以下內容:
在 manifest 標簽裡面加入一條屬性:
畫黃線不理,如果不加這句,在Android Q上會無法往相冊存儲文件。
這里參考官方Demo的寫法,最底部圖層是一個 PreviewView 用來預覽,上層放兩個按鈕,一個用來拍照,一個用來錄像。
在 onCreate 里開始主要邏輯。如果已有許可權,開啟相機預覽。
在請求許可權返回的時候,判斷是否已有許可權,如果有了就可以開啟預覽了
開啟預覽,把預覽內容放進 PreviewView 里。
監聽,寫在Activity外面
再在Activity裡面寫一個內部類
界面銷毀時關閉線程
Github CameraX-Demo
Google CameraX 開發文檔
掘金-JetPack之使用CameraX完成拍照和拍視頻
❽ ADB錄制視頻 Android 視頻錄制命令 screenrecord
在Android 4.4(Kitkat - API level 19)上集成了一個比較好用的視頻(.mp4格式)錄制功能 – screenrecord 。
使用方法
1. 基本用法
$ adb shell screenrecord /sdcard/myscreenrecord.mp4
/sdcard/myscreenrecord.mp4 為視頻錄制文件路徑
錄制默認解析度,默認4Mbps,默認180s的視頻,保存到sdcard上名為myscreenrecord.mp4
2. 旋轉(參數:–rotate)
$ adb shell screenrecord --rotate /sdcard/myscreenrecord.mp4
旋轉90度
3. 指定解析度(參數:–size)
$adb shell screenrecord --size 112x112 /sdcard/myscreenrecord.mp4
解析度為112x112,建議不要指定解析度,使用默認解析度效果最佳;
注意,解析度不是完全可以隨意定製的,比如在我手機上錄制100x100的會提示錯誤:
The max width/height supported by codec is1920x1088
100x100is not supported by codec, suggest to set it as112x112
4. 指定比特率(參數:–bit-rate)
$adb shell screenrecord --bit -rate 8000000 /sdcard/myscreenrecord.mp4
設置比特率為8Mbps,比特率越大,文件越大,畫面越清晰;
5. 限制錄制時間 (參數: –time-limit)
$adb shell screenrecord --time -limit 10 /sdcard/myscreenrecord.mp4
限制視頻錄制時間為10s,如果不限制,默認180s
6. 導出視頻
$adb pull /sdcard/myscreenrecord.mp4
7. 注意
請關注視頻文件生成大小,根據自身情況而定;
暫不支持聲音;
咱時不支持模擬器錄制( 模擬器錄制看這里 ),出現如下提示:Unable to get output buffers (err=-38)
Encoder failed (err=-38),可認為是此原因;
8. 命令查看
adb shell screenrecord --help
Usage: screenrecord [options]
Records the device's display to a .mp4 file.
Options:
--size WIDTHxHEIGHT
Set the video size, e.g."1280x720". Default is the device's main
display resolution (if supported), 1280x720if not. For best
results,use a size supported by the AVC encoder.
--bit -rate RATE
Set the video bit rate, in megabits per second. Default4Mbps.
--time -limit TIME
Set the maximum recording time, in seconds. Default / maximum is180.
--rotate
Rotate the output90 degrees.
--verbose
Display interesting information on stdout.
--help
Showthis message.
Recording continues until Ctrl-C is hit or the time limit is reached.
❾ 安卓手機怎麼錄屏
安卓手機錄屏的方法如下:
從狀態欄向下滑出通知面板(可繼續下滑),點擊屏幕錄制,啟動錄屏。點擊屏幕上方的紅色計時按鈕,結束錄屏。
安卓簡介:
安卓(Android)是一種基於Linux內核(不包含GNU組件)的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。Android操作系統最初由安迪·魯賓開發,主要支持手機。
2005年8月由Google收購注資。2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的授權方式,發布了Android的源代碼。
第一部Android智能手機發布於2008年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數碼相機、游戲機、智能手錶等。
2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。
2013年的第四季度,Android平台手機的全球市場份額已經達到78.1%。
2013年09月24日谷歌開發的操作系統Android在迎來了5歲生日,全世界採用這款系統的設備數量已經達到10億台。