Subscriber オブジェクトは、リモートストリームを再生しているローカルの video 要素を表すものです。
Subscriber オブジェクトには、サブスクライブしたストリームのローカルオーディオ再生を無効化または有効化できる
メソッドが含まれています。 subscribe() のメソッドを使用する。
セッション このオブジェクトは、Subscriber オブジェクトを返します。
プロパティ
| 名称 | タイプ | 説明 |
|---|---|---|
element |
要素 | Subscriber を含む HTML DOM 要素。 |
id |
ストリング | サブスクライバーのDOM ID。 |
stream |
ストリーム | 購読しているストリームです。 |
方法
| 名称 | 説明 | |
|---|---|---|
addEventListener(type, listener, context) |
非推奨です。 | |
getAudioVolume() → {Number} |
サブスクライバーのオーディオ音量(0~100)を返します。 | |
| `getCaptionsTranslationLanguage() → {CaptionsLanguageCode | null}` | この加入者に対する現在のキャプションの翻訳言語コードを返します。 |
getImgData() → {String} |
加入者の動画を表すPNGデータのBase64エンコードされた文字列を返します。 | |
getRtcStatsReport() → {Promise} |
成功した場合、サブスクライブされたストリームに関する RtcStatsReport オブジェクトで解決される Promise を返します。 | |
getStats(completionHandler) → {Promise.<SubscriberStats>} |
サブスクライバーのストリーム品質に関する詳細情報を返します。これには以下が含まれます: - 失われたオーディオおよびビデオパケットの総数 - 受信したオーディオおよびビデオパケットの総数 - 受信したオーディオおよびビデオのバイト総数 - 実際に受信されたビデオの解像度(via videoWidth() そして videoHeight()) - 実際にデコードされた動画のフレームレート(経由: video. |
|
getStyle() → {Object} |
サブスクライバーの現在のユーザーインターフェースコントロールを定義するプロパティを持つオブジェクトを返します。 | |
isAudioBlocked() |
ブラウザのオーディオ自動再生ポリシーにより、加入者のオーディオがブロックされているかどうかを示します。 | |
isSubscribedToCaptions() |
加入者が字幕を受信しているかどうか。 | |
off(type, handler, context) → {Object} |
1つまたは複数のイベントハンドラを削除します。 | |
on(type, handler, context) → {EventDispatcher} |
1つ以上のイベントに対するイベントハンドラ関数を追加します。 | |
once(type, handler, context) → {Object} |
1つ以上のイベントに対するイベントハンドラ関数を追加します。 | |
removeEventListener(type, listener, context) |
非推奨です。 | |
restrictFrameRate(value) → {Subscriber} |
以下を引数として渡した場合、サブスクライバーのビデオストリームのフレームレートを制限します。 true. |
|
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} |
サブスクライバーのオーディオトラックに対して MediaProcessorConnector を設定します。 | |
setAudioVolume(value) → {Subscriber} |
加入者の音声音量を0から100の間で設定します。 | |
setCaptionsTranslationLanguage(langCode) |
この購読者の字幕翻訳に使用する優先言語を設定します。 | |
setPreferredFrameRate(frameRate) → {Promise.<void>} |
サブスクライバーの動画の推奨フレームレートを設定します。 | |
setPreferredResolution(resolution) → {Promise.<void>} |
サブスクライバーの動画の推奨解像度を設定します。 | |
setStyle(style, value) → {Subscriber} |
サブスクライバーのユーザーインターフェースコントロールの外観を定義するプロパティを設定します。 | |
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} |
サブスクライバーのビデオトラックに対して MediaProcessorConnector を設定します。 | |
subscribeToAudio(value) → {Subscriber} |
音声をオン/オフに切り替えます。 | |
subscribeToCaptions(value) → {Promise.<void>} |
字幕の表示・非表示を切り替えます。 | |
subscribeToVideo(value) → {Subscriber} |
動画の再生をオン/オフに切り替えます。 | |
videoHeight() → {Number} |
サブスクライバーの動画が実際に受信された高さをピクセル単位で返します。 | |
videoWidth() → {Number} |
サブスクライバーの動画の、実際に受信された幅(ピクセル単位)を返します。 |
addEventListener(type, listener, context)
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
type |
ストリング | イベントの種類を識別する文字列。 |
listener |
機能 | オブジェクトがイベントをディスパッチする際に呼び出される関数。 |
context |
目的 | (オプション)の値を定義します。 this イベントハンドラ関数内で。 |
非推奨 — 使い方 on() または once() その代わりだ。
このメソッドは、特定のイベントのイベントリスナーとしてメソッドを登録します。
イベントに対してハンドラが登録されていない場合、そのイベントはローカルでは無視されます。 イベントリスナー関数が存在しない場合、そのイベントはローカルでは無視されます。
以下の場合、例外をスローします。 listener 名前が無効です。
getAudioVolume() →{Number}
サブスクライバーのオーディオ音量(0~100)を返します。
通常、このメソッドは setAudioVolume()
メソッドを使用する。
参照: : - setAudioVolume()
リターンズ
加入者の音声音量(0~100)。
getCaptionsTranslationLanguage() →{CaptionsLanguageCode|null}
この加入者の現在のキャプション翻訳言語コードを返します。
翻訳言語が設定されていない場合は、 null デフォルトの言語が使用されていることを示すため。
これはプライベートベータ版の機能です。
リターンズ
現在、
字幕の翻訳用に設定されている言語コード、または null デフォルトの場合。
getImgData() →{String}
加入者の動画を表すPNGデータのBase64エンコードされた文字列を返します。
この文字列を、次のように、画像ファイルの src パラメータに渡されるデータ URL スキームの値として使用できます:
var imgData = subscriber.getImgData();
var img = document.createElement("img");
img.setAttribute("src", "data:image/png;base64," + imgData);
var imgWin = window.open("about:blank", "Screenshot");
imgWin.document.write("<body></body>");
imgWin.document.body.appendChild(img);
リターンズ
Base64エンコードされた文字列。動画がない場合は空の文字列を返します。
getRtcStatsReport() →{Promise}
成功した場合、サブスクライブされたストリームに対する RtcStatsReport オブジェクトで解決されるプロミスを返します。 (参照: RTCStatsReport.)
以下の条件に該当する場合、「約束」は却下されます:
- このブラウザはこのメソッドをサポートしていません(たとえば、Chrome バージョン 57 以前では、 このメソッドがサポートされていません)。 RTCPeerConnection.getStats() (標準)。
- について PeerConnection 加入者が接続されていないためです。
参照: : - Publisher.getRtcStatsReport()
リターンズ
操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスは拒否されます。
getStats(completionHandler) →{Promise.<SubscriberStats>}
サブスクライバーのストリーム品質に関する詳細情報を返します。これには以下が含まれます:
- 失われたオーディオおよびビデオパケットの合計数
- 受信したオーディオおよびビデオパケットの合計数
- 受信した音声および動画の合計バイト数
- 実際に受信した動画の解像度(経由: videoWidth() そして videoHeight())
- 実際にデコードされた動画のフレームレート(via
video.decodedFrameRate)
テストストリームを公開し、(公開側クライアントで)そのストリームを購読して、このメソッドを使用して
その品質を確認することができます。ストリームの品質に基づいて、どの動画解像度が
サポートされているか、また、その環境下で動画や音声の配信が可能かどうかを判断できます。 その結果に基づいて、適切な
ストリームを配信することができます。このメソッドを使用して、自身の
クライアントが配信しているストリームをテストする場合は、 testNetwork プロパティ true オプションで
以下を Session.subscribe() メソッド。例については、
以下を参照してください。 opentok-ネットワークテスト
GitHub上のプロジェクト。
また、オーディオの
パケット損失が特定の閾値に達した場合、これらの統計情報を利用して、加入者にオーディオのみの配信を購読させることもできます。この設定を行う場合は、
subscriber プロパティの audioFallback 対象 false
セッション用に Publisher オブジェクトを初期化する際。これにより、
Vonage Video Media Router が独自の音声専用切り替え実装を使用することを防ぎます。
(以下のドキュメントを参照してください: OT.initPublisher() メソッド)
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
completionHandler |
機能 | 以下のパラメータを受け取るオプションの関数: - error (エラー) — クライアントが接続されていない場合、error プロパティが設定されます。メソッドの呼び出しが正常に完了すると、このプロパティは未定義になります。 - stats (オブジェクト) — 以下のプロパティを持つオブジェクト: - audio.bytesReceived (数値) — 加入者が受信したオーディオバイトの総数 - audio.packetsLost (数値) — 加入者に到達しなかったオーディオパケットの総数 - audio.packetsReceived (数値) — 加入者が受信したオーディオパケットの総数 - timestamp (数値) — これらの統計情報が収集された時点のタイムスタンプ(Unix エポックからの経過時間(ミリ秒単位)) - video.bytesReceived (数値) — 加入者が受信した動画データの総バイト数 - video.packetsLost (数) — 加入者に到達しなかったビデオパケットの総数 - video.packetsReceived (数) — 加入者が受信したビデオパケットの総数 - video.frameRate (数値) — 現在の動画の平均フレームレート。このプロパティは非推奨となっており、将来的に削除される予定です。代わりに、 video.decodedFrameRate プロパティ。 - video.decodedFrameRate (数値) — 復号化された動画のフレームレート(1秒あたりのフレーム数) - video.codec (文字列) — この加入者が使用しているビデオコーデック - video.pauseCount (数値) — 加入者の動画再生が一時停止した回数。5秒以上フレームがレンダリングされない場合、一時停止と検出されます - video.totalPausesDuration (数値) — 動画再生中に検出されたすべての休止時間の合計(ミリ秒単位) - video.freezeCount (回数) — 加入者の動画がフリーズした回数。フリーズは、以下の基準に基づいて定義されます。 WebRTC 統計仕様 - video.totalFreezesDuration (数値) — 加入者の動画再生中に検出されたすべてのフリーズの累積時間(ミリ秒単位) - senderStats.connectionMaxAllocatedBitrate (数値) — 送信側接続について推定可能な最大ビットレート(bps:ビット/秒) - senderStats.connectionEstimatedBandwidth (数値) — 送信側接続の現在の帯域幅の推定値(bps(ビット/秒)単位) - transport.connectionEstimatedBandwidth (数値) — ローカル接続の推定利用可能帯域幅(ビット/秒(bps)) - transport.networkCondition (文字列) — ローカル接続の現在のネットワーク状態。取り得る値は以下の通りです: unknown, critical, warning, fair, good そして excellent. - transport.networkConditionReason (文字列) — ローカルネットワークの状態に影響を与えている主な原因。取り得る値は以下の通りです: none, unknown, bandwidth そして packetLoss. - remotePublisherTransport.connectionEstimatedBandwidth (数値) — リモートパブリッシャー接続の推定利用可能帯域幅(ビット/秒(bps)) - remotePublisherTransport.networkCondition (文字列) — リモートパブリッシャー接続の現在のネットワーク状態。取り得る値は以下の通りです: unknown, critical, warning, fair, good そして excellent. - remotePublisherTransport.networkConditionReason (文字列) — リモートパブリッシャーのネットワーク状況に影響を与えている主な理由。取り得る値は以下の通りです: none, unknown, bandwidth そして packetLoss. - networkDegradationSource (文字列) — ネットワークの品質が低下した場合、その原因がどちら側にあるかを示します。取り得る値は以下の通りです: none, bothOrUnclear, local そして remote. |
参照: : - Publisher.getStats() - Publisher.getRtcStatsReport()
リターンズ
getStyle() →{Object}
サブスクライバーの現在のユーザーインターフェースコントロールを定義するプロパティを持つオブジェクトを返します。
このオブジェクトのプロパティを変更したり、このオブジェクトを
setStyle() Subscriber オブジェクトのメソッド。(詳細については、
setStyle() (このオブジェクトを特徴づけるスタイルを確認するには。)
参照: : - setStyle()
リターンズ
サブスクライバーのスタイルを定義するオブジェクト。
isAudioBlocked()
加入者の音声が、 ブラウザの音声自動再生ポリシーによってブロックされているかどうかを示します。
参照:
: - OT.unblockAudio()
- その audioBlocked
そして audioUnblocked
加入者向けイベント
- The style.audioBlockedDisplayMode プロパティの
options パラメーターの
Session.subscribe() 方法
isSubscribedToCaptions()
加入者が字幕を受信しているかどうか。このプロパティは、加入者が字幕機能をオン
またはオフにした場合( Subscriber.subscribeToCaptions()
メソッド)。デフォルト値は
次のとおりです。 hasCaptions サブスクライバーの初期化時点におけるストリームのパブリッシャーのプロパティ(
Stream.hasCaptions プロパティ).
このプロパティの初期値は、 subscribeToCaptions
の属性 options パラメーターの Session.subscribe()
メソッドを使用する。
参照: : - Subscriber.subscribeToCaptions() - Session.subscribe()
off(type, handler, context) →{Object}
1つまたは複数のイベントハンドラを削除します。
イベント名を1つとハンドラメソッドを1つ渡すと、その イベントのハンドラが削除されます:
obj.off("eventName", eventHandler);
複数のイベント名とハンドラメソッドを渡した場合、それらのイベントについては ハンドラが削除されます:
obj.off("eventName1 eventName2", eventHandler);
イベント名(1つまたは複数)を指定して いいえ ハンドラメソッドでは、それらのイベントに対して すべてのハンドラが削除されます:
obj.off("event1Name event2Name");
引数を指定しない場合は、 すべて そのオブジェクトによってディスパッチされたすべてのイベントについて、 イベントハンドラが削除されます:
obj.off();
このメソッドは、別の構文もサポートしています。この構文では、最初のパラメータは イベント名とハンドラ関数のハッシュマップであるオブジェクトとなり、2番目のパラメータ(オプション)は 各ハンドラにおけるこのオブジェクトのコンテキストとなります:
obj.off(
{
eventName1: event1Handler,
eventName2: event2Handler
});
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
type |
ストリング | (オプション)イベントの種類を識別する文字列。スペースを区切りとして複数のイベントを指定できます(例:「accessAllowed accessDenied accessDialogClosed」)。何も指定しない場合は type 値(またはその他の引数)が指定されると、そのオブジェクトのすべてのイベントハンドラが削除されます。 |
handler |
機能 | (オプション)削除するイベントハンドラ関数。このハンドラは、 on(). 以下のようなヘルパー関数については注意が必要です。 bind() 呼び出されると新しい関数を返すもの。引数を何も渡さない場合は handler, 指定されたイベントに対するすべてのイベントハンドラが削除されます type. |
context |
目的 | (任意)もし context, 指定されたすべてのイベントおよび、指定されたコンテキストを使用するハンドラについて、イベントハンドラが削除されます。(コンテキストは、 on().) |
リターンズ
イベントを発生させたオブジェクト。
on(type, handler, context) → {EventDispatcher}
1つ以上のイベントに対するイベントハンドラ関数を追加します。
次のコードは、1つのイベントに対するイベントハンドラを追加します:
obj.on("eventName", function (event) {
// This is the event handler.
});
複数のイベント名とハンドラメソッドを渡すと、それらのイベントそれぞれに対して ハンドラが登録されます:
obj.on("eventName1 eventName2",
function (event) {
// This is the event handler.
});
3つ目を渡すこともできます context (オプションの)パラメータを使用して、
の値を定義します。 this ハンドラメソッド内で:
obj.on("eventName",
function (event) {
// This is the event handler.
},
obj);
このメソッドは、別の構文もサポートしています。この構文では、最初のパラメータはイベント名とハンドラ関数のハッシュマップであるオブジェクトとなり、2番目のパラメータ(オプション)は、各ハンドラにおけるこのオブジェクトのコンテキストとなります:
obj.on(
{
eventName1: function (event) {
// This is the handler for eventName1.
},
eventName2: function (event) {
// This is the handler for eventName2.
}
},
obj);
イベントに対するハンドラを追加しない場合、そのイベントはローカルでは無視されます。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
type |
ストリング | イベントの種類を識別する文字列です。この文字列には、スペースで区切って複数のイベント名を指定できます。イベントハンドラは、指定された各イベントを処理します。 |
handler |
機能 | イベントを処理するためのハンドラ関数です。この関数は、イベントオブジェクトをパラメータとして受け取ります。 |
context |
目的 | (オプション)の値を定義します。 this イベントハンドラ関数内で。 |
リターンズ
EventDispatcher オブジェクト。
once(type, handler, context) →{Object}
1つ以上のイベントに対するイベントハンドラ関数を追加します。ハンドラが呼び出されると、
指定されたハンドラメソッドは、このイベントのハンドラとして削除されます。( on() イベントハンドラを追加する方法として、そのハンドラは 違う
(呼び出された際に削除されます。)その once() このメソッドは、
を呼び出すことと同じです。 on()
メソッドと呼び出し off() ハンドラが最初に呼び出されたとき。
次のコードは、1つのイベントに対して1回限りのイベントハンドラを追加します:
obj.once("eventName", function (event) {
// This is the event handler.
});
複数のイベント名とハンドラメソッドを渡すと、それらのイベントそれぞれに対して ハンドラが登録されます:
obj.once("eventName1 eventName2"
function (event) {
// This is the event handler.
});
3つ目を渡すこともできます context (オプションの)パラメータを使用して、
の値を定義します
this ハンドラメソッド内で:
obj.once("eventName",
function (event) {
// This is the event handler.
},
obj);
このメソッドは、別の構文もサポートしています。この構文では、最初のパラメータは イベント名とハンドラ関数のハッシュマップであるオブジェクトとなり、2番目のパラメータ(オプション)は 各ハンドラにおけるこのオブジェクトのコンテキストとなります:
obj.once(
{
eventName1: function (event) {
// This is the event handler for eventName1.
},
eventName2: function (event) {
// This is the event handler for eventName1.
}
},
obj);
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
type |
ストリング | イベントの種類を識別する文字列です。この文字列には、スペースで区切って複数のイベント名を指定できます。イベントハンドラは、指定されたイベントのうち最初に発生したものを処理します。最初のイベントが発生した後、ハンドラは(指定されたすべてのイベントについて)削除されます。 |
handler |
機能 | イベントを処理するためのハンドラ関数です。この関数は、イベントオブジェクトをパラメータとして受け取ります。 |
context |
目的 | (オプション)の値を定義します。 this イベントハンドラ関数内で。 |
リターンズ
イベントを発生させたオブジェクト。
removeEventListener(type, listener, context)
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
type |
ストリング | イベントの種類を識別する文字列。 |
listener |
機能 | 削除するイベントリスナー関数。 |
context |
目的 | (任意)もし context, 指定されたすべてのイベントおよび、指定されたコンテキストを使用するイベントリスナーについて、イベントハンドラが削除されます。(コンテキストは、 addEventListener().) |
非推奨 — 使い方 off() その代わりだ。
特定のイベントに対するイベントリスナーを解除します。
以下の場合、例外をスローします。 listener 名前が無効です。
restrictFrameRate(value) → {購読者}
以下を引数として渡した場合、サブスクライバーのビデオストリームのフレームレートを制限します。
true. 以下の引数を渡すと false、ビデオストリームのフレームレートは
制限されません。
フレームレートが制限されている場合、加入者の動画フレームは1秒間に1回以下しか 更新されません。
この機能は、Vonage Video API Media Router を使用するセッションでのみ利用可能です( 以下の メディアモード (「routed」に設定されている場合)で、メディアモードが「relayed」に設定されているセッションでは適用されません。relayedセッションでは、 このメソッドを呼び出しても何の効果もありません。
加入者のフレームレートを制限することには、次のような利点がある:
- CPUの使用率を減らすことができる。
- これにより、消費されるネットワーク帯域幅が削減されます。
- より多くのストリームを同時に購読できる。
加入者のフレームレートを下げても、 他のクライアントでの動画のフレームレートには影響しません。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
value |
ブーリアン | 加入者の動画のフレームレートを制限するかどうか(true)または(false). |
リターンズ
Subscriber オブジェクト。これにより、次のように メソッド呼び出しを連鎖させることができます:
mySubscriber.restrictFrameRate(false).subscribeToAudio(true);
setAudioMediaProcessorConnector(mediaProcessorConnector) →{Promise}
サブスクライバーのオーディオトラックに対して MediaProcessorConnector を設定します。 サブスクライバーが持つことができるオーディオは 1 つだけです。 メディアプロセッサーコネクター 一度に適用されます。新しい コネクタを設定すると、以前に設定されていたオーディオコネクタは削除されます。
注: MediaProcessors は、Chrome、Electron、Opera、Edge、Samsung Internet、 および Android 版の WebView の最新バージョンでのみサポートされています。 その他の(Chromium ベースではない)ブラウザや iOS ではサポートされていません。クライアントが この機能をサポートしているかどうかは、 OT.hasMediaProcessorSupport('audio') メソッドを使用する。
以下の条件下では、このメソッドを呼び出すとエラーが発生します(メソッドによって返されるPromiseがrejectされます)。 具体的には:
- MediaProcessorConnector から処理済みのトラックを取得する際にエラーが発生しました。
以下の引数を指定してこのメソッドを呼び出すことで、現在のコネクタをクリアできます。 null.
詳細は Vonage Media Processorライブラリの使用 開発者ガイド
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
mediaProcessorConnector |
メディアプロセッサーコネクター | MediaProcessorConnector のインスタンスです。詳しくは、 Vonage Media Processor ライブラリのドキュメント. |
参照: : - OT.hasMediaProcessorSupport('audio')
リターンズ
操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスが拒否され、コネクタは設定されません。
setAudioVolume(value) → {購読者}
加入者の音声音量を0から100の間で設定します。
この関数を呼び出す際に、初期音量を設定することができます。 Session.subscribe()
メソッド。次の引数を渡します。 audioVolume プロパティの properties メソッドの
パラメータ。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
value |
Numbers | 音量(0~100)。 |
参照: : - getAudioVolume() - Session.subscribe()
リターンズ
Subscriber オブジェクト。これにより、次のように メソッド呼び出しを連鎖させることができます:
mySubscriber.setAudioVolume(50).setStyle(newStyle);
setCaptionsTranslationLanguage(langCode)
この購読者の字幕翻訳に使用する優先言語を設定します。
これはプライベートベータ版の機能です。
パラメータ:
| 名称 | タイプ | 説明 | |
|---|---|---|---|
langCode |
キャプション言語コード | null | 字幕を翻訳する先の言語コード。Pass null セッションのデフォルト言語を使用する(翻訳なし)。 |
setPreferredFrameRate(frameRate) →{Promise.<void>}
サブスクライバーの動画の推奨フレームレートを設定します。
推奨フレームレートを下げると、 サブスクライバー側の動画品質は低下しますが、ネットワークやCPUの使用量も軽減されます。 他のストリームに比べて重要度の低いストリームのサブスクライバーに対しては、 より低いフレームレートを使用するとよいでしょう。
この方法は、 スケーラブルビデオ機能. スケーラブルビデオが利用可能です:
- Vonage Video API メディアルーターを使用するセッション( メディア モード に設定されている)。
- スケーラブルビデオに対応したクライアントによって配信されるストリームのみ対象です: Vonage Video API iOS Client SDK(特定のデバイス上)、Vonage Video API Android Client SDK(特定のデバイス上)、またはChromeおよびSafariでのOpenTok.jsを使用するクライアント。
スケーラブルビデオを使用していないストリームでは、このメソッドを呼び出しても何の効果もありません。
注: スケーラブルなビデオストリームのフレームレートは、このメソッドを呼び出さなくても、 ネットワークの状態やCPU使用率に基づいて、各加入者ごとに自動的に調整されます。 この加入者の最大フレームレートを設定したい場合は、このメソッドを呼び出してください。
すべてのフレームレートがサブスクライバーで利用可能というわけではありません。サブスクライバーの優先フレームレートを設定すると、
OpenTok.js はその設定に一致する、利用可能な最適なフレームレートを選択します。
利用可能なフレームレートは、Subscriber オブジェクトの
stream.frameRate このプロパティは、ストリームで利用可能な最大値を表します。
実際に利用可能なフレームレートは、パブリッシャーとサブスクライバーが利用可能なネットワークおよびCPUリソースに応じて、動的に変化します。
以下の設定を行うことで、初期の推奨フレームレートを設定できます。 preferredFrameRate
の属性 options オブジェクトに渡します。 Session.subscribe()
メソッドを使用する。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
frameRate |
Numbers | 希望のフレームレート(1秒あたりのフレーム数)に設定してください。これを null 優先フレームレートを解除すると、クライアントは利用可能な最高フレームレートを使用するようになります。 |
参照: : - Subscriber.setPreferredResolution() - Session.subscribe()
リターンズ
指定されたフレームレートが正常に適用された時点で解決するプロミス、
または Error 以下の条件下で:
- サブスクライバーが破棄されたか、まだパブリッシャーに接続されていません。
- このセッションではピアツーピア・メディアモードが使用されていますが、このモードではこの機能はサポートされていません。
- 基になるストリームの更新に失敗しました。
setPreferredResolution(resolution) →{Promise.<void>}
サブスクライバーの動画の推奨解像度を設定します。
推奨解像度を下げると、 サブスクライバー側の動画品質は低下しますが、ネットワーク負荷やCPU使用率も軽減されます。 Webページ上の加入者の動画のサイズに応じて、より低い解像度を使用することを 検討するとよいでしょう。また、他のストリームに比べて重要度が低く(かつ規模が小さい) ストリームの加入者に対しては、より低い解像度を設定することも検討するとよいでしょう。
この方法は、 スケーラブルビデオ機能. スケーラブルビデオが利用可能です:
- Vonage Video API メディアルーターを使用するセッション( メディア モード に設定されている)。
- スケーラブルビデオに対応したクライアントによって配信されるストリームのみ対象です: Vonage Video API iOS Client SDK(特定のデバイス上)、Vonage Video API Android Client SDK(特定のデバイス上)、またはChromeおよびSafariでのOpenTok.jsを使用するクライアント。
スケーラブルビデオを使用していないストリームでは、このメソッドを呼び出しても何の効果もありません。
注: スケーラブルなビデオストリームの解像度は、このメソッドを呼び出さなくても、 ネットワークの状態やCPU使用率に基づいて、各加入者ごとに自動的に調整されます。 この加入者の最大解像度を設定したい場合は、このメソッドを呼び出してください。
スケーラブルビデオを使用していないストリームでは、このメソッドを呼び出しても何の効果もありません。
加入者がすべてのフレームレートを利用できるわけではありません。加入者の優先解像度を設定すると、
OpenTok.js はその設定に一致する利用可能な最適な解像度を選択します。
利用可能な解像度は、Subscriber オブジェクトの
stream.resolution このプロパティは、ストリームで利用可能な最大解像度を表します。
実際に利用可能な解像度は、パブリッシャーとサブスクライバーが利用できるネットワークおよびCPUリソースに応じて、動的に変化します。
以下の設定を行うことで、初期の優先解像度を設定できます。
preferredResolution プロパティの options オブジェクトに渡します。
Session.subscribe() メソッドを使用する。
注: 初期の優先解像度を "auto" 呼び出す際
Session.subscribe(), 呼び出して setPreferredResolution() 何の前触れもなく失敗し、
警告が表示されます。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
resolution |
目的 | これを、2つのプロパティを持つオブジェクトに設定してください: width そして height (両方の数値)、例えば {width: 320, height: 240}.これを null 優先解像度を削除すると、クライアントは利用可能な最高解像度を使用します。 |
参照: : - Subscriber.setPreferredFrameRate() - Session.subscribe()
リターンズ
優先される解決策が
正常に適用された時点で解決されるプロミス、あるいは Error 以下の条件下で:
- このサブスクライバーは、以下のように初期化されました。
preferredResolution: 'auto'. - その値
'auto'はこのメソッドに直接渡されます。 - サブスクライバーが破棄されたか、まだパブリッシャーに接続されていません。
- このセッションではピアツーピア・メディアモードが使用されていますが、このモードではこの機能はサポートされていません。
setStyle(style, value) → {購読者}
サブスクライバーのユーザーインターフェースコントロールの外観を定義するプロパティを設定します。
このメソッドには、パラメータを1つ、または2つ渡すことができます。
1つのパラメータを渡すと、 style、これは次のような
プロパティを持つオブジェクトです:
audioBlockedDisplayMode(文字列) — 「購読者」に デフォルトの音声ブロックアイコンを表示するかどうか(音声の 自動再生がブロックされているブラウザの場合)。指定可能な値は次のとおりです:"auto"(デフォルトでは、 音声がオフのときにアイコンが表示されます)および"off"(アイコンが 表示されません)。これを"off"オーディオがブロックされていることを示す 独自のUI要素を表示したい場合。ある HTML要素がclickイベントでは、次の関数を呼び出すことができます。 OT.unblockAudio() このサブスクライバーおよびその他のすべてのブロックされたサブスクライバーにおいて、 オーディオの再生を開始する方法。audioLevelDisplayMode(文字列) — オーディオレベル インジケーターの表示方法。指定可能な値は以下の通りです:"auto"(このインジケーターは、 動画が無効になっているときに表示されます)、"off"(インジケーターが表示されない)、および"on"(このインジケーターは常に表示されます)。backgroundImageURI(文字列) — 動画が表示されない場合に 背景画像として表示する画像の URI です。( を呼び出すと、動画が表示されない場合があります。subscribeToVideo(false)(Publisher オブジェクト上で)。 http または https の URI を、PNG、JPEG、または非アニメーション GIF ファイルの保存先に指定できます。また、dataURIスキーマ(httpやhttpsの代わりに)を使用し、base64エンコードされた PNGデータを渡します。例えば、 Subscriber.getImgData() メソッド(たとえば、次のように呼び出すことができます)mySubscriber.setStyle("backgroundImageURI", mySubscriber.getImgData())). URL または画像データが無効な場合、そのプロパティは無視されます(画像の設定は エラーを返さずに失敗します)。画像が指定されていない場合は現在の背景が削除され、 以前にイニシャルが設定されている場合はそれが表示されます。buttonDisplayMode(文字列) — スピーカー コントロールの表示方法。指定可能な値は以下の通りです:"auto"(コントロールは、 ストリームが最初に表示されたとき、およびユーザーがディスプレイ上にマウスを合わせると表示されます)、"off"(コントロールは表示されません)、および"on"(操作ボタンは常に表示されます)。nameDisplayMode(文字列) — ストリーム名を表示するかどうか。 取り得る値は次のとおりです:"auto"(この名前は、ストリームが最初に 表示されたとき、およびユーザーがマウスカーソルをその表示の上に合わせたときに表示されます)、"off"(名前は 表示されません)、そして"on"(名前は常に表示されます)。videoDisabledDisplayMode(文字列) — サブスクライバーに対して、動画の 無効化インジケーターおよび動画無効化警告アイコンを表示するかどうか。これらのアイコンは、 ストリームの品質が低いため、動画が無効化されていること(警告アイコンの場合は無効化される恐れがあること)を 示します。取り得る値は以下の通りです:"auto"(これらのアイコンは、再生中の動画が停止している場合、またはストリームの画質が低いために停止する恐れがある場合に自動的に表示されます)、"off"(アイコンを表示しない)、および"on"(アイコンを表示する)。
たとえば、次のコードでは、メソッドに 1 つのパラメータを渡しています:
mySubscriber.setStyle({nameDisplayMode: "off"});
2つのパラメータを渡すと、 style そして value、これらは表示スタイルの1つのプロパティを定義する
キーと値のペアです。たとえば、次のコードでは、
2つのパラメータ値をメソッドに渡しています:
mySubscriber.setStyle("nameDisplayMode", "off");
を呼び出す際に、初期設定を行うことができます。 Session.subscribe() メソッド。
以下を渡します。 style …の一部としてのプロパティ properties メソッドの
パラメータ。
OTオブジェクトは、 exception たとえメソッドに無効なスタイルを
渡した場合でも、 code ExceptionEvent オブジェクトのプロパティが 1011 に設定されています。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
style |
目的 | スタイルを定義するプロパティを含むオブジェクト、または設定するこの単一のスタイルプロパティを定義する文字列のいずれか。 |
value |
ストリング | に設定する値は、 style 渡されました。このパラメータの値を渡すのは、 style パラメータは文字列です。 |
参照: : - getStyle() - setStyle() - Session.subscribe()
リターンズ
Subscriber オブジェクト。
setVideoMediaProcessorConnector(mediaProcessorConnector) →{Promise}
サブスクライバーのビデオトラックに対して MediaProcessorConnector を設定します。 サブスクライバーが持つことができるビデオは 1 つだけです。 メディアプロセッサーコネクター 一度に適用されます。新しい コネクタを設定すると、以前に設定されていたビデオコネクタは削除されます。
注: MediaProcessors は、Chrome、Firefox、Electron、Opera、 Edge、Samsung Internet、Android 版 WebView、および Safari と iOS 版 WebView の最新バージョンでのみサポートされています。 クライアントがこの機能をサポートしているかどうかは、 OT.hasMediaProcessorSupport('video') メソッドを使用する。
以下の条件下では、このメソッドを呼び出すとエラーが発生します(メソッドによって返されるPromiseがrejectされます)。 具体的には:
- ビデオ入力装置(カメラ)はありません。
- ビデオ入力デバイスからビデオを取得する際にエラーが発生しました。
- MediaProcessorConnector から処理済みのトラックを取得する際にエラーが発生しました。
以下の引数を指定してこのメソッドを呼び出すことで、現在のコネクタをクリアできます。 null.
詳細は Vonage Media Processorライブラリの使用 開発者ガイド
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
mediaProcessorConnector |
メディアプロセッサーコネクター | MediaProcessorConnector のインスタンスです。詳しくは、 Vonage Media Processor ライブラリのドキュメント. |
参照: : - OT.hasMediaProcessorSupport('video')
リターンズ
操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスが拒否され、コネクタは設定されません。
subscribeToAudio(value) → {購読者}
音声のオン/オフを切り替えます。以下の条件を満たす場合、音声の購読を開始します(利用可能で、かつ現在
購読されていない場合): value は true; 停止
(現在購読中の場合)オーディオの購読を value
は false.
注: この方法は、オーディオのローカル再生にのみ影響します。同じストリームを購読している 他の接続のオーディオには影響しません。パブリッシャーが オーディオを配信していない場合、サブスクライバーのオーディオを有効にしても実質的な効果はありません。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
value |
ブーリアン | オーディオの購読を始めるかどうか(true)または(false). |
参照: : - subscribeToVideo() - Session.subscribe() - StreamPropertyChangedイベント
リターンズ
Subscriber オブジェクト。これにより、次のように メソッド呼び出しを連鎖させることができます:
mySubscriber.subscribeToAudio(true).subscribeToVideo(false);
subscribeToCaptions(value) →{Promise.<void>}
字幕の表示/非表示を切り替えます。以下の条件を満たす場合、字幕の購読を開始します(利用可能で、かつ現在
購読されていない場合): value は true; 停止
(現在購読中の場合)キャプションの購読を value
は false.
初期値は、以下の設定を行うことで設定できます。 subscribeToCaptions
の属性 options パラメーターの Session.subscribe()
メソッド。デフォルト値は hasCaptions サブスクライバーの初期化時点における
ストリームのパブリッシャーのプロパティ(
Stream.hasCaptions プロパティ).
詳細は ライブ・キャプション 開発者ガイド
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
value |
ブーリアン | 字幕の配信を購読し始めるかどうか(true)または(false). |
参照: : - isSubscribedToCaptions() - captionReceived イベント - StreamPropertyChangedイベント - Session.subscribe()
リターンズ
サーバーがキャプションチャネルの更新を承認した時点で解決するプロミスです。 更新の送信中にエラーが発生した場合、このプロミスはrejectされます。
subscribeToVideo(value) → {購読者}
動画の再生をオン/オフに切り替えます。動画の購読を開始します(利用可能で、
現在購読されていない場合)。 value は true;
以下の条件を満たす場合、動画の購読を停止します(現在購読中の場合)。
value は false.
注: この方法は、ローカルでの動画再生にのみ影響します。同じストリームを購読している 他の接続の動画には影響しません。パブリッシャーが 動画を配信していない場合、サブスクライバーの動画を有効にしても実質的な効果はありません。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
value |
ブーリアン | 動画の購読を始めるかどうか(true)または(false). |
参照: : - subscribeToAudio() - Session.subscribe() - StreamPropertyChangedイベント
リターンズ
Subscriber オブジェクト。これにより、次のように メソッド呼び出しを連鎖させることができます:
mySubscriber.subscribeToVideo(true).subscribeToAudio(false);
videoHeight() →{Number}
サブスクライバーの動画の、実際に受信された高さ(ピクセル単位)を返します。これは、 受信した動画ストリームのデコード後の解像度を反映したものであり、ネットワークやCPUによる適応処理、あるいはスケーラブルビデオレイヤーの 選択により、 パブリッシャーのキャプチャ解像度とは異なる場合があります。このメソッドを使用して、この サブスクライバーに対して実際にレンダリングされている解像度を確認してください。
河川の水質モニタリングに関する詳細については、以下の クライアントの観測可能性 開発者ガイド
参照: : - Subscriber.getStats()
リターンズ
加入者の動画の、実際に受信された高さ(ピクセル単位)。
videoWidth() →{Number}
サブスクライバーの動画の実際の受信幅をピクセル単位で返します。これは、 受信した動画ストリームのデコード後の解像度を反映しており、ネットワークやCPUによる適応処理、あるいはスケーラブルビデオレイヤーの 選択により、 パブリッシャーのキャプチャ解像度とは異なる場合があります。このメソッドを使用して、この サブスクライバーに対して実際にレンダリングされている解像度を確認してください。
河川の水質モニタリングに関する詳細については、以下の クライアントの観測可能性 開発者ガイド
参照: : - Subscriber.getStats()
リターンズ
加入者の動画の、実際に受信された幅(ピクセル単位)。
イベント
audioBlocked
ブラウザの自動再生ポリシーにより、加入者の音声がブロックされた場合に 送信されます。
参照:
: - OT.unblockAudio()
- Subscriber.isAudioBlocked()
- その audioUnblocked イベント
- その style.audioBlockedDisplayMode プロパティの
options パラメーターの
Session.subscribe() メソッド)
オーディオレベル更新
加入者の音声レベルを示すために定期的にディスパッチされます。このイベントは、
ブラウザによっては、1秒あたり最大60回ディスパッチされます。この audioLevel このイベントの
プロパティはオーディオレベルで、0 から 1.0 までの値をとります。詳しくは AudioLevelUpdatedEvent 詳細については
こちらをご覧ください。
次の例では、加入者の音量を表示するメーター要素の値を調整しています。 なお、オーディオレベルは対数的に調整され、移動平均が 適用されている点に注意してください:
var movingAvg = null;
subscriber.on('audioLevelUpdated', function(event) {
if (movingAvg === null || movingAvg <= event.audioLevel) {
movingAvg = event.audioLevel;
} else {
movingAvg = 0.7 * movingAvg + 0.3 * event.audioLevel;
}
// 1.5 scaling to map the -30 - 0 dBm range to [0,1]
var logLevel = (Math.log(movingAvg) / Math.LN10) / 1.5 + 1;
logLevel = Math.min(Math.max(logLevel, 0), 1);
document.getElementById('subscriberMeter').value = logLevel;
});
この例では、音声専用サブスクライバーに表示される デフォルトのオーディオレベルインジケーターで使用されるアルゴリズムを示しています。
参照: : - AudioLevelUpdatedEvent
audioUnblocked
ブラウザの自動再生ポリシーにより一時停止された後、 加入者の音声が再生可能になった際に送信されます。
以下のいずれかが発生した場合、加入者オーディオのブロックは解除される:
- ユーザーは、デフォルトの加入者オーディオ再生アイコンをクリックします。
- について OT.unblockAudio()
このメソッドは、HTML要素が
a
clickイベント(デフォルトの オーディオ再生アイコンを無効にしている場合) - ローカルクライアントがカメラまたはマイクへのアクセス権を取得します
(たとえば、
OT.initPublisher()).
参照:
: - OT.unblockAudio()
- その audioBlocked イベント
- その style.audioBlockedDisplayMode プロパティの
options パラメーターの
Session#subscribe() メソッド)
captionReceived
加入者が文字起こしサービスから字幕を受信した際に送信されます。
まず、 Subscriber.subscribeToCaptions()
メソッド(また、ストリームの配信元が字幕を配信している必要があります)を実行してから、受信する前に
captionReceived のイベントがある。
参照: : - CaptionReceivedEvent - ライブ字幕
接続済み
サブスクライバーが
disconnected イベントを開催する。
破壊された
「Subscriber」要素がHTML DOMから削除されたときにディスパッチされます。このイベントが ディスパッチされた際、サブスクライバーに関連するHTML DOM要素を調整または削除することができます。
ストリームが破棄された際に、サブスクライバーがDOMから削除されるのを防ぐために、
以下のイベントをリッスンします。 streamDestroyed イベント
Session オブジェクトによって送信された。その streamDestroyed Session オブジェクトによってディスパッチされたイベントはキャンセル可能であり、 preventDefault() イベントオブジェクトの
このメソッドにより、ストリームのサブスクライバーがHTML DOMから削除されるのを防ぎます。
参照: : - イベント
切断された
加入者のストリームが中断された際に送信されます。
このイベントが発生した際、ユーザーインターフェース上の通知を表示して、 オーディオ・ビデオストリームが一時的に切断されており、アプリが 再接続を試みていることをユーザーに知らせることをお勧めします。
クライアントがストリームに再接続すると、Subscriber オブジェクトは
connected イベント。それ以外の場合、クライアントがストリームに再接続できないときは、
Subscriber オブジェクトは destroyed イベントを開催する。
encryptionSecretMatch
暗号化キーが一致したため、加入者のメディアを復号できるようになった際に送信されます。 これは、以前にキーの不一致があった場合にのみ送信されます。
参照: : - イベント - 暗号化シークレットの不一致 イベント - OT.initSession - session.setEncryptionSecret
暗号化シークレットの不一致
暗号化キーが一致しないため、加入者のメディアを復号できない場合に送信されます。 この状況では、ユーザーは引き続きストリームを購読していますが、 映像は真っ黒になり、音声は聞こえなくなります。メディアが視聴できない理由を ユーザーに伝えることが推奨されます。
参照: : - イベント - encryptionSecretMatch イベント - OT.initSession - session.setEncryptionSecret
メディアストリーム利用可能
MediaStreamが利用可能になったときに送信されます。
参照: : - イベント
networkConditionChanged
加入者またはリモートパブリッシャーのネットワーク状態の変化が検出された際に送信されます。
現在の実装では、いずれかの側のネットワーク状態が変化した場合にのみ、このイベントが発生します。
このイベントは、 videoDisabled そして videoEnabled このイベントは、加入者のビデオトラックの状態の変化ではなく、ネットワークの
健全性の変化を報告するという点で、他のイベントとは異なります。Applicationsはこのイベントを利用して、
UIの更新、テレメトリの記録、適応型動作のトリガーなど、ネットワークの問題に対応することができます。
このイベントの特性は以下の通りです:
reason— イベントの原因を示します。現在は常に"networkConditionChanged"stats— 現在の統計情報の完全なスナップショットを含むオブジェクト。その構造は、 によって返されるオブジェクトと全く同じである。getStats()呼び出しに関する情報(ネットワークの状態、 ローカルおよびリモートのトランスポート/ネットワークの問題原因、ならびにネットワーク性能低下の原因を含む)。
参照: : - イベント
クオリティスコア変更
音声または動画の品質 スコアに変更があった場合に送信されます。これらのスコアは、加入者が体験すると予想される品質を表すヒューリスティックな値です。値の 範囲は5から1までで、整数値は「Excellent(優秀)」「Good(良好)」「Fair(普通)」「Poor(低)」「Bad(不良)」に対応しています。
参照: : - QualityScoreChangedEvent
videoDimensionsChanged
以下の場合に送信されます。 stream.videoDimensions プロパティは、
パブリッシャーによって更新されます。これは、パブリッシャーのローカル動画要素が寸法の変更を検知し、
すべてのセッション参加者に更新を通知した際に発生します。この原因となる例としては、次のようなものがあります:
- いつ
stream.videoTypeに設定されている。"screen"(画面共有) そして、ユーザーがキャプチャされたウィンドウのサイズを変更した場合。 - モバイル端末から動画を公開している際に、ユーザーが端末を回転させると、 カメラの向きが変わってしまいます。
- 出版社から電話がかかってきたとき Publisher#setPreferredResolution、 ターゲットのキャプチャ解像度を変更します。
このイベントオブジェクトには、 newValue プロパティと、ある oldValue プロパティ、
これはビデオの新しい寸法と古い寸法を表しています。それぞれには height
プロパティと、および width 高さおよび幅を表すプロパティ(単位はピクセル)。
注:これらの寸法は出版社の キャプチャ 解像度( 配信事業者がエンコードして送信しているもの)であり、この加入者が実際にデコードした解像度ではありません。 ネットワーク適応やスケーラブルビデオコーディングにより、デコード後の解像度が異なる場合があります。 使用方法 加入者数#動画の幅 そして 購読者数#動画の高さ 実際の 受信解像度については。
参照: : - VideoDimensionsChangedEvent
videoDisabled
登録者向けの動画が無効になっている場合に送信されます。
について reason このプロパティは、動画が無効化された理由を定義します。このプロパティには、
以下のいずれかの値を設定できます:
-
"codecNotSupported"— クライアントのブラウザは、 ストリームで使用されているビデオコーデックに対応していません。たとえば、Safariで ルーティングセッション ~の中で Safari 以外の Vonage Video API プロジェクト, そして、動画を含むストリームの購読を試みると、Subscriber はvideoDisabledイベントをreasonプロパティ を"codecNotSupported"。(Safari以外のプロジェクトにおけるルーティングされたセッションでは、 ストリームにはVP8ビデオコーデックが使用されますが、これはSafariではサポートされていません。)また、subscriber 要素には「ビデオ形式がサポートされていません」というメッセージが表示されます。(参照: OT.getSupportedCodecs().) -
"publishVideo"— 出版社は電話をかけて動画の公開を中止したpublishVideo(false). -
"quality"— 接続状態の悪化によるストリーム品質の変化を受け、 Vonage Video Media Router またはパブリッシングクライアントが、 加入者への動画送信を停止しました。ルーティングされたセッションにおいて、このイベントの発生源は、Vonage Video Media Router (加入者側オーディオフォールバック)またはパブリッシングクライアント(パブリッシャー側オーディオフォールバック)のいずれかとなります。いずれの場合も、 影響を受けた加入者に対してのみビデオストリームが切断されますが、オーディオ ストリーム(存在する場合)は中断されることなく継続します。 発生源がパブリッシングクライアントである場合、 このイベントの後に
streamPropertyChangedセッション オブジェクトによってディスパッチされるイベントで、サブスクライブされたビデオチャンネルがもはやアクティブではないことを示します。一般的に、この 追加のイベントは、パブリッシャー側のネットワーク品質の低下を示していますが、 サブスクライバーから報告されたメトリクスによってパブリッシャーのフォールバック判断に影響が及ぶ可能性があり、 そのため、品質低下の正確な原因を特定することが困難になる場合があります。中継セッションでは、
"quality"このイベントは、 パブリッシャーの内部オーディオフォールバックロジック(Publisher Audio Fallback)によってのみトリガーされます。このイベントの 後に続くのは、streamPropertyChanged動画が非アクティブであることを示すイベントですが、 ネットワーク環境が良好な他の加入者には、依然としてストリームが受信されている可能性があります。 なお、中継セッションでは、オーディオフォールバックイベントはパブリッシャーから発生しますが、 ネットワークの品質低下はパブリッシャー側または加入者側のいずれかで発生している可能性があります。このイベントを送信する前に、加入者のストリーム品質が、 ビデオストリームが無効化される恐れがあるほど低くなった場合、加入者は 以下のイベントを送信します。
videoDisableWarningイベントを開催する。接続状態が改善して再び動画の再生が可能になった場合、Subscriber オブジェクトは a
videoEnabledイベントが発生すると、加入者は動画の受信を再開します。デフォルトでは、サブスクライバーは、
videoDisabledこの理由によるイベントがディスパッチされ、 以下の場合にインジケーターが解除されます。videoEnabledこの理由によるイベントがディスパッチされます。このアイコンの表示は、 を呼び出すことで制御できます。setStyle()加入者の方法、 設定はvideoDisabledDisplayModeプロパティ(あるいは、 呼び出す際にスタイルを設定することもできます)Session.subscribe()メソッドで、styleプロパティ のpropertiesパラメータ)。オーディオのみのフォールバック動作は、
audioFallbackに渡しされたオブジェクト内のプロパティOT.initPublisher()パブリッシング クライアントについて。デフォルトでは、サブスクライバーのオーディオフォールバックは有効になっており(画面共有を使用する場合は 除く。この場合はデフォルトで無効)、パブリッシャーのオーディオフォールバックは無効になっています。これを変更するには、 次のように設定します。audioFallback.subscriberへのfalse加入者フォールバックを無効にするには、 または、audioFallback.publisherへのtrueパブリッシャーのフォールバックを有効にするには。 (参照: OT.initPublisher().) -
"subscribeToVideo"— 加入者は、電話をかけて 動画の購読を開始または停止しました。subscribeToVideo(false).
参照: : - ビデオ有効変更イベント - videoDisableWarning イベント - videoEnabled イベント
videoDisableWarning
Vonage Video API メディアルーターがストリームの品質が低下したと判断した際に送信され、
品質がさらに低下した場合は動画が停止されます。品質がさらに低下した場合、
加入者は動画を停止し、 videoDisabled イベントを開催する。
デフォルトでは、このイベントが
ディスパッチされた際(かつ動画が無効になっている場合)、サブスクライバーは「動画が無効」という警告インジケーターを表示します。このアイコンの表示は、
以下の関数を呼び出すことで制御できます。 setStyle() メソッドと、
videoDisabledDisplayMode プロパティ(あるいは、
を呼び出す際にスタイルを設定することもできます) Session.subscribe() メソッドと、 style プロパティ
の properties パラメータ)。
この機能は、Vonage Video API Media Router を使用するセッションでのみ利用可能です( 以下の メディアモード (ルーティング設定)に設定されている場合を除き、メディアモードが中継に設定されているセッションでは適用されません。
参照: : - イベント - videoDisabled イベント - videoDisableWarningLifted イベント
videoDisableWarningLifted
Vonage Video API メディアルーターが、ストリームの品質が改善し、
動画の無効化が差し迫ったリスクとならないレベルに達したと判断した際に発信されます。このイベントは、
Subscriber オブジェクトが videoDisableWarning イベントを開催する。
この機能は、Vonage Video API Media Router を使用するセッションでのみ利用可能です( 以下の メディアモード (ルーティング設定)に設定されている場合を除き、メディアモードが中継に設定されているセッションでは適用されません。
参照: : - イベント - videoDisableWarning イベント - videoDisabled イベント
videoElementCreated
加入者のビデオ要素が作成されたときに発生します。このイベントのリスナーは、
以下の設定を行う際に追加してください。 insertDefaultUI オプションで false への呼び出しにおいて
Session.subscribe() メソッドを使用する。その element
イベントオブジェクトのこのプロパティは、サブスクライバーの video 要素
(またはInternet Explorerでは object (動画を含む要素)。これを
HTML DOM に追加して、動画を表示します。 insertDefaultUI ~するオプション
falseその video (または object) 要素は、DOM に自動的に
挿入されることはありません。
このイベントのリスナーを追加するのは、 insertDefaultUI ~するオプション
false. まだ設定していない場合は insertDefaultUI ~するオプション
false, を動かさないでください video (または object) 要素を
HTML DOM から削除します。これにより、Subscriber オブジェクトが破棄されます。
参照: : - VideoElementCreatedEvent
videoEnabled
以前に動画が無効化されていた後、Vonage Video API メディアルーターが加入者への動画送信を再開した際に、このイベントが発行されます。
について reason このプロパティは、動画が有効化された理由を定義します。これは、
以下のいずれかの値に設定できます:
-
"codecChanged"— 非互換のコーデックから別のコーデックに変更された後、 加入者向け動画が利用可能になりました。 -
"publishVideo"— 出版社は、電話をかけて動画の配信を開始したpublishVideo(true). -
"quality"— Vonage Video API メディアルーターは、ストリームの品質変化に応じて、 加入者への動画配信を再開しました。Vonage Video API メディアルーターのこの機能により、 接続状態が悪化した際には加入者が動画ストリームの受信を中断し、 ストリームの品質が改善した場合には配信が再開されます。この機能は、Vonage Video API Media Router を使用するセッションでのみ利用可能です( 以下の メディアモード (ルーティング設定)に設定されている場合を除き、メディアモードが中継に設定されているセッションでは適用されません。
-
"subscribeToVideo"— 加入者は、電話をかけて 動画の購読を開始または停止しました。subscribeToVideo(false).
参照: : - ビデオ有効変更イベント - videoDisabled イベント
videoQualityChanged
動画の画質に乱れ(一時停止など)が検出された場合、またはコーデックの変更が検出された場合に送信されます。
フリーズは内部で追跡され、統計情報として公開されていますが、その発生時間が短く、発生頻度が高くなる可能性があるため、 フリーズごとにイベントはトリガーされません。
イベントは、一時停止が検出された場合(例:5秒以上フレームがレンダリングされない場合)にのみトリガーされます。これは、 メディア再生においてより重大な中断を表すためです。
このイベントは、 videoDisabled そして videoEnabled 加入者向けイベントにおいて、
動画の品質に関連する変更を報告する。 videoDisabled そして videoEnabled only
は、加入者のビデオトラックがオンまたはオフになったことを示します(たとえば、ストリームのプロパティの
更新やオーディオのフォールバックによる場合など)。これに対し、このイベントは、画質の低下
の原因に関する診断情報(フリーズや一時停止の回数、更新された統計情報など)を提供します。
このイベントでは、5秒以上続くあらゆる種類の動画の中断を対象とします。つまり、
オーディオへのフォールバックやストリームのプロパティ変更(動画が無効化されるなど)といった
特定のケースにおいては、 videoEnabled そして videoDisabled イベントが発生した場合、その中断は
動画統計において「一時停止」として記録され、動画が復旧すると、
これに対応する「動画中断による品質変化」イベントがトリガーされます。
について reason このプロパティは、動画の画質が変化した理由を定義します。これは、
以下のいずれかの値に設定できます:
"videoInterruption"— 新しい一時停止イベントが検出されたことを示します"codecChange"— ビデオコーデックが変更されたことを示します
について stats このプロパティは、現在の統計情報の完全なスナップショットを含むオブジェクトを定義し、
その構造は、 getStats() 呼び出し。可能であれば、間や
フリーズも含める。
参照: : - イベント