メニュー

Expand
ページを評価:

Screen Capture - Android 6.x

In this guide we'll use the Screen Capturer quickstart to demonstrate how to share your Android device application screen with other participants connected to a Room using the MediaProjection API.

If you are interested in capturing from an Android View in the View hierarchy instead of capturing from the device screen you can take a look at our custom video capturer example instead:

Using the Screen Capturer API

Video Android SDKに含まれるScreenCapturerクラスは、デバイス画面からのLocalVideoTrack用のビデオフレームを提供する用途に使用されます。 フレームはMediaProjection APIによって提供されます。 キャプチャラーはBuild.VERSION_CODES.LOLLIPOP以降のみに対応しています。

Setup your app Manifest

Starting in Android 10, developers are required to specify a foreground service when using the MediaProjection API. Reference the following snippet from the quickstart example AndroidManifest.xml.

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

<application
    <service
        android:enabled="true"
        android:name=".ScreenCapturerService"
        android:foregroundServiceType="mediaProjection">
    </service>
</application>
VideoViewを初期化する
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screen_capturer);
        localVideoView = findViewById(R.id.local_video);
    }
Request screen capture permission from user

Get an instance of the MediaProjectionManager service. Call the createScreenCaptureIntent method in a new activity. This initiates a prompt dialog for the user to confirm screen projection.

Request Screen Capturer Permission
    private void requestScreenCapturePermission() {
        Log.d(TAG, "Requesting permission to capture screen");
        MediaProjectionManager mediaProjectionManager = (MediaProjectionManager)
                getSystemService(Context.MEDIA_PROJECTION_SERVICE);

        // This initiates a prompt dialog for the user to confirm screen projection.
        startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(),
                REQUEST_MEDIA_PROJECTION);
    }
Start Screen capture when permission received

ユーザーから権限を受け取ってから、ScreenCapturerクラスを初期化します。 LocalVideoTrackオブジェクトを作成し、ScreenCapturerオブジェクトを渡して取り込まれたローカルビデオフレームを渡します。 VideoViewオブジェクトをVisibleに設定します。 LocalVideoTrackオブジェクトのaddSinkメソッドを呼び出します。 VideoViewオブジェクトを渡して、画面キャプチャービデオの受信を開始します。

Using the Screen Capturer Class
    private void startScreenCapture() {
        screenVideoTrack = LocalVideoTrack.create(this, true, screenCapturer);
        screenCaptureMenuItem.setIcon(R.drawable.ic_stop_screen_share_white_24dp);
        screenCaptureMenuItem.setTitle(R.string.stop_screen_share);

        localVideoView.setVisibility(View.VISIBLE);
        screenVideoTrack.addSink(localVideoView);
    }

エラーが見つかりましたか? GithubでIssueをオープンしましょう。

どこかで行き詰まりましたか? お探しのものが見つかりませんか? お気軽に twilio_support@kddi-web.com にお問い合わせいただければ、喜んで解決のお手伝いをいたします。

ページを評価:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Community Forums or browsing the Twilio tag on Stack Overflow.

        
        
        

        フィードバックくださりありがとうございます!

        We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!

        ステップ1

        Get link

        Get a free personal referral link here

        ステップ2:

        Give $10

        Your user signs up and upgrade using link

        ステップ3

        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more