画面共有 — Windows

カメラの代わりに画面の映像をソースとして使用するストリームを配信することができます。セッションに接続しているクライアントは、カメラをソースとするストリームを購読するのと同じように、そのストリームを購読(および視聴)することができます。

このトピックには以下のセクションが含まれます:

スクリーン共有ソースでストリームを公開する

カメラの代わりにデバイスのスクリーンをビデオソースとして使用するには カスタムビデオキャプチャ.

以下は、画面共有を実装するためのカスタム動画キャプチャ機能を定義した簡単な例です(動画ソースとしてカメラの代わりに画面を使用しています):

public class ScreenSharingCapturer : IVideoCapturer
{
    System.Threading.Timer timer;
    IVideoFrameConsumer frameConsumer;
    const int WIDTH = 640;
    const int HEIGHT = 480;
    const int FPS = 30;

    public void Init(IVideoFrameConsumer frameConsumer)
    {
        this.frameConsumer = frameConsumer;
    }

    public void Start()
    {
        timer = new System.Threading.Timer((Object stateInfo) =>
        {
            using (Bitmap bitmap = new Bitmap(WIDTH, HEIGHT, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
            {
                using (Graphics graphics = Graphics.FromImage(bitmap as Image))
                {
                    graphics.CopyFromScreen(0, 0, 0, 0, new Size(WIDTH, HEIGHT), CopyPixelOperation.SourceCopy);
                }
                using (var frame = OpenTok.VideoFrame.CreateYuv420pFrameFromBitmap(bitmap))
                {
                    frameConsumer.Consume(frame);
                }
            }

        }, null, 0, 1000 / FPS);
    }

    public void Stop()
    {
        if (timer != null)
        {
            using (var timerDisposed = new ManualResetEvent(false))
            {
                timer.Dispose(timerDisposed);
                timerDisposed.WaitOne();
            }
        }
        timer = null;
    }

    public void Destroy()
    {
    }

    public VideoCaptureSettings GetCaptureSettings()
    {
        VideoCaptureSettings settings = new VideoCaptureSettings();
        settings.Width = WIDTH;
        settings.Height = HEIGHT;
        settings.Fps = FPS;
        settings.MirrorOnLocalRender = false;
        settings.PixelFormat = PixelFormat.FormatYuv420p;

        return settings;
    }
}

を設定する。 VideoSourceType パブリッシャー・オブジェクトの OpenTok.VideoSourceType.Screen.これは、公開されたストリームに(カメラではなく)画面共有ビデオソースがあることをフラグ付けします。

デフォルトでは スケーラブルビデオ は、画面共有ストリームでは無効です。画面共有ストリームでスケーラブル・ビデオを有効にするには パブリッシャー.ビルダー.スケーラブルスクリーンシェア 財産である。 注: 画面共有ストリーム用のスケーラブルなビデオは ベータ が特徴だ。

ストリームのビデオタイプ("スクリーン "または "カメラ")の決定

Stream オブジェクトには VideoSourceType プロパティ。これは、OpenTok.VideoSourceType 列挙型で定義されている以下の値のいずれかに設定できます:

  • Camera - カメラを映像ソースとする標準的なビデオストリーム
  • Screen - スクリーン共有ビデオストリーム
  • Custom - HTML VideoTrack 要素を動画ソースとして使用し、Web クライアントから公開されたストリーム。

画面共有ストリームに登録する

カメラをソースとして使用するストリームに登録するのと同じ方法で、画面共有ビデオソースを使用するストリームに登録できます。参照 ストリームの購読.