のパフォーマンスを向上させることが可能かどうかお尋ねしたいと思い MediaProjection
ます。
faddenの回答後に編集されました。
アプリの疑似構造:
1) AppCompatActivity のフルスクリーン FrameLayout:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/cameraPreview"
android:layout_width="match_parent"
android:layout_height="match_parent"
...
2) SurfaceViewによるカメラプレビュー
class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
3) Camera Preview を FrameLayout に追加する
frameLayout.addView(CameraPreview)
4) 入力面を作成します。
Surface mSurface = MediaCodec.createInputSurface();
5) 仮想ディスプレイを作成し、仮想ディスプレイを Surface にレンダリングします。
MediaProjection.createVirtualDisplay(
"virtualDisplay",
720, //width
1280, //height
320, //dpi
DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION | DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
mSurface,
null,
null);
6)MediaMuxer
オーディオ/ビデオ マルチプレクサ ストリームに使用します。
たとえば、10 秒間。録音の:
MPEG4Writer: Received total/0-length (201/0) buffers and encoded 201 frames. - Video
MPEG4Writer: Received total/0-length (423/0) buffers and encoded 423 frames. - Audio
〜20FPSです。
30FPSが欲しいです。(デバイスは 30 FPS で fullHD を記録できるので、それは可能であると思います。)
私は Android studio 2.0 から画面を記録しようと
し
まし
た
。
Huawei Honor 4C、Android 5.1.1 ~20 FPS でテスト済み。
Vodafone Smart Ultra 6、Android 5.1.1 でテスト済み、ビデオは最大 40 FPS です。
TinyDancerで FPS を測定してみましたが、録画中に 60 FPS を示しました。
どこが弱点ですか?記録中の CPU 使用率は 10% 未満です。
追加の質問: Android 6 の MediaProjection のパフォーマンスは向上しますか?
(注: オーバーレイ ビューでカメラ プレビューを記録します。)