# ステレオ入出力

> **重要**
>
> ステレオ入出力はブラウザや端末やマイクに依存します。

## 概要

WebRTC をブラウザで利用する際、ステレオの入出力は基本的に利用できません。
これは WebRTC がそもそもリアルタイムコミュニケーションを目的として作られたため、
ステレオの入出力を必要としていなかったためです。

しかし、WebRTC でのステレオ需要が増えてきているため、
ここでは Sora JavaScript SDK でステレオ入出力を利用する方法を説明します。

## 注意事項

- ブラウザでのステレオ出力は完全にブラウザ依存です。さらに、ステレオ入力はマイク依存になります
- ステレオ音声を利用する場合はデフォルトで有効になっているエコーキャンセルを無効にする必要があります

## forceStereoOutput オプション

`forceStereoOutput` オプションを有効にする事でステレオ試聴が利用できる用になる場合があります。

```typescript
import Sora from "sora-js-sdk";

const signalingUrl = "wss://signaling.example.com/signaling";
const debug = false;

const channelId = "sora";
const metadata = {
  // access_token などを指定する
};
const options = {
  forceStereoOutput: true,
};

const sora = Sora.connection(signalingUrl, debug);
const conn = sora.recvonly(channelId, metadata, options);

await conn.connect();
```

## Chrome

- Windows - 未検証です
- macOS - forceStereoOutput オプションを有効にする事でステレオ試聴ができます
- Linux- 未検証です
- iOS - 未検証です
- Android- 未検証です

## Safari

**Safari のバージョン**: 18.5

### macOS

forceStereoOutput オプションを有効にする事でステレオ試聴ができます。

### iPadOS

forceStereoOutput オプションを有効にする事でステレオ試聴ができます。

### iOS

- ステレオ試聴できる- sendrecv と recvonly
  - sendonly と recvonly
- ステレオ試聴できない- sendrecv と sendrecv

## Firefox

未検証です。

## ステレオ入力が確認できているハードウェア

### マイク

- [HyperX QuadCast S](https://jp.ext.hp.com/accessories/personal/quadcast_s/)

### カメラ

- [Opal C1](https://opalcamera.com/opal-c1)
