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