Known issues

This page has not been translated yet.

Bluetooth イヤホンを利用している際に Audio を扱う Publication の Disable/Enable を行うと再生中の音声が一瞬途切れる

SDK では Publication の Disable をする際に Stream と紐付いているメディアデバイスを解放し、Enable する際にメディアデバイスを再取得します。 これにより Publication を Disable している間は、PC のカメラインジゲータやマイクインジゲータを消灯することが出来ます。

Bluetooth イヤホンを利用している環境では音声デバイスの取得/解放時に Bluetooth イヤホン上の音声が途切れる場合があります。

この音声の途切れが許容できない場合は、SkyWayStreamFactory で LocalAudioStream を作成する際に次のオプションを指定してください。 ただし、このオプションを指定すると Publication の Disable 時にメディアデバイスの解放処理が行われなくなるのでご注意ください。

await SkyWayStreamFactory.createMicrophoneAudioStream({ stopTrackWhenDisabled: false });

iOS Safari でブラウザのウィンドウやタブを閉じたとき、またはページを更新したとき Member が Room (Channel) から leave しない

SDK ではブラウザのウィンドウやタブを閉じたとき、またはページを更新したときに beforeunload イベント を検知して Member を自動的に leave させます。しかし、iOS Safari は beforeunload イベントに対応していないため、これによる Member の leave が行われません。

代替手段として、MemberKeepAliveConfig の keepaliveIntervalSec(デフォルト値 30)と keepaliveIntervalGapSec(デフォルト値 30)を適切な値に設定することで Member が自動的に leave するタイミングをある程度コントロールすることができます。

Member の生存確認は keepaliveIntervalSec 秒ごとにクライアントからサーバーへの応答の有無で行われており、keepaliveIntervalSec 秒応答がないまま keepaliveIntervalGapSec 秒経過した場合 Member の leave が行われます。

そのため、例えば keepaliveIntervalSec を 30 秒、keepaliveIntervalGapSec を 5 秒とすることで、ブラウザのウィンドウを閉じたとき最短で 5 秒後、最長で 35 秒後に Member を自動的に leave させることができます。

Room ライブラリの場合

const context = await SkyWayContext.Create(token); const room = await SkyWayRoom.FindOrCreate(context, { type: 'p2p', name: 'sample-room', }); const me = await room.join({ keepaliveIntervalSec: 30, keepaliveIntervalGapSec: 5, });

Core ライブラリの場合

const context = await SkyWayContext.Create(token); const channel = await SkyWayChannel.FindOrCreate(context, { name: 'sample-channel', }); const me = await channel.join({ keepaliveIntervalSec: 30, keepaliveIntervalGapSec: 5, });