android屏幕录制
生活随笔
收集整理的這篇文章主要介紹了
android屏幕录制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android低版本需要實現屏幕錄制,據我目前了解到的,都是需要獲取Root權限才行。
本文介紹的屏幕錄制是居于Android5.0及之后Android API實現的屏幕錄制,以及錄制后編碼成h264格式保存到文件。屏幕采集主要使用類MediaProjection 和 MediaProjectionManager。數據編碼使用類mediacodec一、錄屏步驟
1、獲取MediaProjectionManager(getSystemService(MEDIA_PROJECTION_SERVICE))2、錄屏申請(createScreenCaptureIntent)Intent intent = mediaProjectionManager.createScreenCaptureIntent();startActivityForResult(intent, REQUEST_CODE);3、申請同意后,獲取到mediaProjection(ProjectionManager.getMediaProjection)4、創建VirtualDisplay(createVirtualDisplay),輸入參數surface,寬高、分辨率等創建VirtualDisplay需要傳入surface,所以創建VirtualDisplay前,先初始化并配置編碼器mediacodec,從mediacodec獲取到surface,參考Encoder5、如果想實現截一張圖保存下來,創建VirtualDisplay時也是傳入surface(一般是通過ImageReader獲取到surface)
通過步驟5實現屏幕保存bitmap到文件(demo?里的CaptureImageActivity.java)
通過步驟4實現屏幕錄制,配合mediacodec實現h264編碼,編碼保存到文件,文件可以通過ffmpeg播放、查看屬性等?(錄屏、編碼參考demo?EncodeActivity.java及Encoder.java)
二、mediacodec實現視頻數據編碼(h264格式介紹???????)
1、在VirtualDisplay前創建mediacodec初始化(createEncoderByType),通過configure把編碼參數配置好(MediaFormat)
2、通過VirtualDisplay創建后,循環mCodec.dequeueOutputBuffer獲取編碼器buffer輸出index,index可以判斷出buffer類型(sps、pps、圖像幀),把數據保存到文件里。保存的文件可以使用vlc或者ffmpeg播放驗證
總結
以上是生活随笔為你收集整理的android屏幕录制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 运行时设置数据库连接字符串
- 下一篇: 最新区块链科普图书《区块链进化史》上市