---
lang: ja
path: cookbook/javascript-sdk/enable-disable
labels: クックブック/JavaScript SDK/ミュートの実装
metaTitle: ミュートの実装 | JavaScript SDK｜ クックブック ｜ SkyWay（スカイウェイ）
---

# ミュートの実装

## 概要

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 することはできません。

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

## サンプルコード

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

```ts
const localVideoStream = await SkyWayStreamFactory.createCameraVideoStream();
const publication = await localMember.publish(localVideoStream);

// カメラ映像の配信を一時的に停止する
await publication.disable();
// カメラ映像の配信を再開する
await publication.enable();
```
