0

のパフォーマンスを向上させることが可能かどうかお尋ねしたいと思い 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 のパフォーマンスは向上しますか?

(注: オーバーレイ ビューでカメラ プレビューを記録します。)

4

0 に答える 0