導航:首頁 > 操作系統 > android開發錄制視頻

android開發錄制視頻

發布時間:2024-10-09 05:13:32

android調用系統相機實現拍照和視頻錄制

(1)申請許可權

(2)設置布局

這里做了一個簡單的布局:添加了一個按鈕和一個ImageView控制項用於顯示拍攝的圖像。

(3)為按鈕添加點擊事件監聽

點擊按鈕時,調用系統相機進行拍照,並在確定後將圖像顯示在ImageView控制項中。

(1)申請許可權

(2)設置布局

添加了一個按鈕和一個VideoView控制項用於顯示錄制的視頻。

(3)為按鈕添加點擊事件監聽

同前面一樣,點擊按鈕後調用系統相機進行錄制視頻,錄制完成後點擊確定即可將錄制的視頻顯示在VideoView控制項中。

對於Android11.0的版本,在調用系統相近進行視頻錄制的時候,即使在AndroidMenifest.xml中申請了CAMERA許可權,還是會在程序運行時報錯: Permission  Denial ,   . .... ....  with revoked permission android.permission.CAMERA

解決方法是在程序中動態申請許可權:

寫在最後:文章是在學習過程中做的學習筆記,同時與志同道合者分享,文章內容均經過我自己實驗證實可行,如有問題歡迎留言,很高興一起交流討論,共同進步!

⑵ 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開發設置屏蔽錄制

項目開發中,為了用戶信息的安全,會有禁止頁面被截屏、錄屏的需求。
這類資料,在網上有很多,一般都是通過設置Activity的Flag解決,如:

//禁止頁面被截屏、錄屏getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

這種設置可解決一般的防截屏、錄屏的需求。
如果頁面中有彈出Popupwindow,在錄屏視頻中的效果是:

非Popupwindow區域為黑色
但Popupwindow區域仍然是可以看到的

如下面兩張Gif圖所示:

未設置FLAG_SECURE,錄屏的效果,如下圖(git圖片中間的水印忽略):

設置了FLAG_SECURE之後,錄屏的效果,如下圖(git圖片中間的水印忽略):

⑷ 自家開發的AndroidApp裡面自帶的錄像功能,錄制的畫面變形怎麼解決

相機有自己支持的預覽比例列表,是不是預覽的view的寬高比和相機支持的比例不一樣導致的?如果是的話不要固定那個view的大小,寫成根據相機支持的preview大小自適應吧,然後多出來的部分給蓋住。錄出來的video也有支持的比例列表而且和preview的還不一樣,自己設也可能會導致視頻變形

⑸ 現在 做了個 android 視頻錄制的程序 ,後置攝像頭總是旋轉90度,如何用代碼實現正常。

MediaRecorder 中一個方法setCamera();所以可以先設置好攝像頭的參數,然後再設置到MediaRecorder 中(但是錄制前需要解鎖)。
部分關鍵的代碼如果下:
//初始化相機信息
Camera mCamera = Camera.open();
Camera.Parameters params = mCamera.getParameters();
mCamera.setDisplayOrientation(90);//旋轉了90度,最好先判斷下JDK的版本號,再決定旋轉不
mCamera.setParameters(params);
mCamera.stopPreview();
mCamera.unlock();//解鎖
videoMediaRecorder.setCamera(mCamera);

閱讀全文

與android開發錄制視頻相關的資料

熱點內容
什麼app可以教你化妝 瀏覽:545
程序員加班996怎麼過 瀏覽:827
有個什麼tv美女直播app 瀏覽:860
編譯gcc比較全的參數 瀏覽:204
stvd取消編譯器優化 瀏覽:423
pdf存儲格式 瀏覽:588
加密軟體提取時沒有這個鍵怎麼辦 瀏覽:913
可以用命令行做什麼好玩的東西 瀏覽:134
榮耀30s帶方丹編譯器嗎 瀏覽:55
黑甲蟲加密軟體加密後文件不見了 瀏覽:277
惠州程序員名單 瀏覽:180
java可移植性 瀏覽:743
加密卡寫卡工具 瀏覽:396
德善緣app是干什麼的 瀏覽:821
中山雲存儲伺服器 瀏覽:689
google蜂鳥演算法 瀏覽:952
為什麼程序員這么受人詬病 瀏覽:104
linuxgtk編程 瀏覽:255
迪拜用什麼app打車 瀏覽:634
java字元串不轉義 瀏覽:310