メニュー

Rate this page:

Thanks for rating this page!

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

Screen Capture

このガイドでは、ルームに接続されている他の参加者にiOSデバイスのアプリケーション画面を共有する方法についてご紹介します。 これを行うにはいくつか方法があります。 もっとも簡単なのは、Video iOS SDKにすでに備わっているTVIScreenCapturerAPIを使用することです。 お望みの場合は、独自の画面キャプチャーを実装することもできます。

In the example source code, you can flip a flag to choose to run the example project using either the TVIScreenCapturer API or the custom screen capturer (ExampleScreenCapturer).

Choose a Screen Capturer
var localVideoTrack: TVILocalVideoTrack?
var remoteView: TVIVideoView?
var screenCapturer: TVIVideoCapturer?
var webView: WKWebView?
var webNavigation: WKNavigation?

// Set this value to 'true' to use ExampleScreenCapturer instead of TVIScreenCapturer.
let useExampleCapturer = false
Using the Screen Capturer API

The TVIScreenCapturer class captures the contents of a single view at 1x scale. As this class depends on the UIKit and CoreGraphics frameworks to snapshot content, it does not function if the application is backgrounded. This class will use the dimensions of the view to determine its capture size and will not respond to TVIVideoConstraints.

画面キャプチャーを開始するには、TVILocalVideoTrackオブジェクトを、TVIVideoCapturerを引数として初期化します。 続いて、ビデオレンダラーをセットアップし、それを先に作成したTVILocalVideoTrackオブジェクトに追加することが必要です。

Note: On iOS, capturing the screen requires no permissions from the user. While designing the UX, developers should be clear about their intentions to the user.

Begin Screen Capture
func setupLocalMedia() {
    // Setup screen capturer
    let capturer: TVIVideoCapturer
    if (useExampleCapturer) {
        capturer = ExampleScreenCapturer.init(aView: self.webView!)
    } else {
        capturer = TVIScreenCapturer.init(view: self.webView!)
    }

    localVideoTrack = TVILocalVideoTrack.init(capturer: capturer, enabled: true, constraints: nil, name: "Screen")

    if (localVideoTrack == nil) {
        presentError(message: "Failed to add screen capturer track!")
        return;
    }

    screenCapturer = capturer;

    // Setup rendering
    remoteView = TVIVideoView.init(frame: CGRect.zero, delegate: self)
    localVideoTrack?.addRenderer(remoteView!)

    remoteView!.isHidden = true
    self.view.addSubview(self.remoteView!)
    self.view.setNeedsLayout()
}

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

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

Rate this page:

ヘルプが必要ですか?

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