DocumentationUser GuideTipsHow to implement muting and unmuting of microphone and video media

How to implement muting and unmuting of microphone and video media

This page has not been translated yet.

概要

SkyWay でマイクのミュート/アンミュートのような通信の一時的な停止と再開を実装する際に Publication.enable/disable を使うことができます。

Publication.disable()を実行すると Publication のメディア通信が一時的に停止され、Publication.enable()を実行するとメディア通信が再開されます。

Publication.enable/disable は Publication の subscribe/unsubscribe と違って、停止と再開が接続処理を行うことなく、即時に実行される利点があります。

Publication の停止状況は Publication.state プロパティから参照できます。Publication.state は以下の 3 つの状態を取ります。

  • enabled
    • 配信中。state が disabled の時に enable()を実行すると state が enabled に変更される
  • disabled
    • 配信停止中。state が enabled の時に disable()を実行すると state が disabled に変更される
  • canceled
    • 配信終了。Publication が Unpublish されると state が canceled に変更される。

制限

Remote の Publication を disable することは可能ですが、enable することはできません。

具体的なユースケースで例えると、話している相手を強制的にミュートさせることはできますが、ミュート中の相手を強制的にアンミュートさせることはできません。

SkyWayAuthToken の設定

Publication.enable/disable の権限は SkyWayAuthToken で設定できます。

disable

write か disable のいずれかの Action が設定されていれば利用できます。

scope.app.channels[].members[].publication.actions["write","disable"]

enable

write か enable のいずれかの Action が設定されていれば利用できます。

scope.app.channels[].members[].publication.actions["write","enable"]

サンプルコード

JavaScript SDK の Room ライブラリによるサンプルコードを以下に示します。

const localVideoStream = await SkyWayStreamFactory.createCameraVideoStream(); const publication = await localMember.publish(localVideoStream); // カメラ映像の配信を一時的に停止する await publication.disable(); // カメラ映像の配信を再開する await publication.enable();