導航:首頁 > 操作系統 > 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開發錄制視頻相關的資料

熱點內容
編譯時可以發現注釋中的錯誤嗎 瀏覽:769
關於python新聞 瀏覽:596
硬體設計pdf 瀏覽:358
怎麼把文件夾的ppt匯總 瀏覽:983
overturepdf 瀏覽:400
javasorted 瀏覽:146
java怎麼加密 瀏覽:238
php播放swf 瀏覽:225
衛星圖片編譯 瀏覽:483
星球大戰前線2是什麼伺服器 瀏覽:948
雲伺服器軟體代開發 瀏覽:61
安卓手機如何看瀏覽網頁的源碼 瀏覽:742
女士在哪個app買衣服 瀏覽:792
pdf偏黃 瀏覽:19
android開發錄制視頻 瀏覽:734
網頁設計的編譯器 瀏覽:908
mapbasic編程 瀏覽:766
單片機lacll指令含義 瀏覽:911
uboot編譯更新 瀏覽:531
三維可視化演算法 瀏覽:555