グループ通話で画面共有
グループ通話(カンファレンス)で画面を共有するサンプルコードです。
- ここで触れているのは、画面共有に関するサンプルコードです。 PlanetKit SDKを使用した全体のクライアントコードは、デモアプリのソースコードで確認できます。
- WebPlanetKitには、サブグループ機能がありません。
WebPlanetKitには、requestPeerScreenShare
がありません。LINE Planet CloudがWebPlanetKitクライアントに共有画面ビデオを自動送信するからです。詳しくは、プレゼンテーション - 画面共有を参照してください。
送信側 - 画面共有の送信を開始する
画面共有を開始するには、画面共有ビデオを表示するHTMLビデオエレメントと共にstartMyScreenShare()
を呼び出します。
planetKit
.startMyScreenShare(screenShareVideoElement)
.then(() => {
// success
})
.catch((error) => {
// fail
});
送信側 - ビデオエレメントを変更する
ローカルユーザーの画面共有ビデオを表示するビューを変更するには、新しいHTMLビデオエレメントと共にchangeMyScreenShareView()
を呼び出します。cleanOldElement
パラメーターは、以前のビデオエレメントを整理するかどうかを決定します。
planetKit
.changeMyScreenShareView(newScreenShareVideoElement, doCleanOldElement);
送信側 - 画面共有の送信を終了する
画面共有を中止するには、stopMyScreenShare()
を呼び出します。
planetKit
.stopMyScreenShare()
.then(() => {
// success
})
.catch((error) => {
// fail
});
受信側 - 画面共有のアップデートイベントを受信する
受信者は、evtPeerScreenShareStarted
およびevtPeerScreenShareStopped
のような画面共有に関するイベントコールバックを通じて画面共有アップデートのイベントを受信できます。
planetKit.joinConference({
...
delegate: {
evtPeerScreenShareStarted: (userId) => {
// Triggered when the peer starts screen share
// planetKit.addPeerScreenShareView(userId, peerScreenShareVideoElement)
},
evtPeerScreenShareStopped: (userId) => {
// Triggered when the peer stops screen share
// planetKit.removePeerScreenShareView(userId)
}
}
})
受信側 - ピアの画面共有ビデオをレンダリングするビューを追加する
ピアの画面共有ビデオを表示するには、ピアのユーザーIDと画面共有ビデオを表示するHTMLビデオエレメントと共にaddPeerScreenShareView()
を呼び出します。
planetKit
.addPeerScreenShareView(userId, peerScreenShareVideoElement)
.then(() => {
// success
})
.catch((error) => {
// fail
});
受信側 - ピアの画面共有ビデオのためのビューを変更する
ピアの画面共有ビデオを表示するビューを変更するには、ピアのユーザーIDと新しいHTMLビデオエレメントと共にchangePeerScreenShareView()
を呼び出します。cleanOldElement
パラメーターは、以前のビデオエレメントを整理するかどうかを決定します。
planetKit
.changePeerScreenShareView(userId, newPeerScreenShareVideoElement, doCleanOldElement);
受信側 - ピアの画面共有ビデオのためのビューを削除する
ピアの画面共有ビデオのレンダリングを中止するには、ピアのユーザーIDと共にremovePeerScreenShareView()
を呼び出します。
planetKit
.removePeerScreenShareView(userId)
.then(() => {
// success
})
.catch((error) => {
// fail
});