によって返される Session オブジェクトは、 OT.initSession() このメソッドを使用すると、
Vonage Video API の機能の多くを利用できます。
プロパティ
| 名称 | タイプ | 説明 |
|---|---|---|
capabilities |
能力 | A 能力 クライアントの機能に関する情報を含むオブジェクト。このオブジェクトのすべてのプロパティは、 capabilities セッションに接続し、その Session.connect() メソッドはエラーなく呼び出されました。 |
connection |
接続 | について 接続 このセッションのオブジェクト。connection プロパティは、 Session.connect() メソッドが正常に呼び出されました。詳しくは Session.connect() メソッドと 接続 クラスである。 |
sessionId |
ストリング | このセッションのセッションIDです。この値を OT.initSession() Session オブジェクトを作成する際にこのメソッドを呼び出します。(注:Session オブジェクトは、そのオブジェクトの connect() メソッドを呼び出し、その完了ハンドラがエラーなしで呼び出されるまで、Vonage Video API サーバーには接続されません。詳しくは、 OT.initSession() そして Session.connect() メソッド。)セッションおよびセッションIDの詳細については、以下を参照してください。 セッションの作成. |
方法
| 名称 | 説明 |
|---|---|
addEventListener(type, listener, context) |
非推奨です。 |
connect(token, completionHandler) |
Vonage Video APIのセッションに接続します。 |
disableForceMute() → {Promise} |
セッションのアクティブなミュート状態を解除します。 |
disconnect() → {Promise.<void>} |
Vonage Video API セッションを切断します。 |
forceDisconnect(connection, completionHandler) → {Promise.<void>} |
セッションを終了するために、リモート接続を強制的に切断します。 |
forceMuteAll(excludedStreams) → {Promise} |
そのセッションに参加しているすべての配信者(除外されたストリームを配信している配信者を除く)に対して、音声をミュートするように強制します。 |
forceMuteStream(stream) → {Promise} |
指定されたストリームの配信者に、音声のミュートを強制します。 |
forceUnpublish(stream, completionHandler) → {Promise.<void>} |
指定されたストリームの配信元に対し、そのストリームの配信を停止するよう強制します。 |
getPublisherForStream(stream) → {Publisher} |
指定されたストリームのローカルな Publisher オブジェクトを返します。 |
getSubscribersForStream(stream) → {Array} |
指定されたストリームに対するローカルなSubscriberオブジェクトの配列を返します。 |
off(type, handler, context) → {Object} |
1つまたは複数のイベントハンドラを削除します。 |
on(type, handler, context) → {EventDispatcher} |
1つ以上のイベントに対するイベントハンドラ関数を追加します。 |
once(type, handler, context) → {Object} |
1つ以上のイベントに対するイベントハンドラ関数を追加します。 |
publish(publisher, completionHandler) |
について publish() このメソッドは、セッションへのオーディオ・ビデオストリームの配信を開始します。 |
removeEventListener(type, listener, context) |
非推奨です。 |
setEncryptionSecret(secret) → {Promise} |
エンドツーエンド暗号化が有効になっているセッションの暗号化シークレットを設定します。 |
setIceConfig(newIceConfig) |
セッション内のすべての接続に対して、ICEの設定を行います。 |
signal(signal, completionHandler) → {Promise.<void>} |
セッション内の各クライアント、または指定されたクライアントにシグナルを送信します。 |
subscribe(stream, targetElement, properties, completionHandler) → {Subscriber} |
そのセッションで利用可能なストリームを購読します。 |
unpublish(publisher) |
指定されたパブリッシャーのオーディオ・ビデオストリームのセッションへの配信を停止します。 |
unsubscribe(subscriber) |
セッション内のストリームの購読を停止します。 |
addEventListener(type, listener, context)
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
type |
ストリング | イベントの種類を識別する文字列。 |
listener |
機能 | オブジェクトがイベントをディスパッチする際に呼び出される関数。 |
context |
目的 | (オプション)の値を定義します。 this イベントハンドラ関数内で。 |
非推奨 — 使い方 on() または once() その代わりだ。
このメソッドは、特定のイベントのイベントリスナーとしてメソッドを登録します。
イベントに対してハンドラが登録されていない場合、そのイベントはローカルでは無視されます。 イベントリスナー関数が存在しない場合、そのイベントはローカルでは無視されます。
以下の場合、例外をスローします。 listener 名前が無効です。
connect(token, completionHandler)
Vonage Video APIのセッションに接続します。
接続に成功すると、完了ハンドラ(メソッドの2番目のパラメータ)が、 エラーオブジェクトが渡されることなく呼び出されます。(接続中にエラーが発生した場合は、 エラーオブジェクトが渡されて完了ハンドラが呼び出されます。)Sessionオブジェクトの他のメソッドを呼び出す前に、 セッションへの接続が正常に完了していることを確認してください。
Session オブジェクトは connectionCreated クライアント(
自身のクライアントを含む)がセッションに接続した際のイベント。
例
以下のコードは、セッションを初期化し、セッションが 接続された際のイベントリスナーを設定します:
var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
var sessionID = ""; // Replace with your own session ID.
// See https://tokbox.com/developer/guides/create-session/.
var token = ""; // Replace with a generated token.
// See https://tokbox.com/developer/guides/create-token/.
var session = OT.initSession(apiKey, sessionID);
session.connect(token, function(error) {
if (error) {
console.log(error.message);
} else {
// You have connected to the session. You could publish a stream now.
}
});
ディスパッチされたイベント:
exception (例外イベント) — エラーが発生した場合、
現地のOTクラスによって送信されます。
connectionCreated (ConnectionEvent) —
セッションに接続しているすべてのクライアントに対して、Session オブジェクトによって送信されます。
sessionConnected (SessionConnectEvent)
— 接続が確立された際に、Session オブジェクトによってローカルで呼び出されます。ただし、
の 2 番目のパラメータとして、完了ハンドラ関数を渡すこともできます。
connect() そして、この関数を、
sessionConnected イベントを開催する。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
token |
ストリング | セッショントークン。当社のサービスを使用してセッショントークンを生成します。 サーバーサイドライブラリ または、お客様の Vonage Video API アカウント ページ。詳細については、以下を参照してください。 接続トークンの作成. |
completionHandler |
機能 | (オプション) への呼び出しが行われた際に呼び出される関数 connect() メソッドが成功するか失敗するか。この関数は1つのパラメータを受け取ります―― error (参照: エラー オブジェクト)。成功した場合、 completionHandler この関数には引数が渡されません。エラーが発生した場合、この関数には error オブジェクトパラメータ(詳細は エラー オブジェクト)。その error このオブジェクトには2つのプロパティがあります: code (整数)および message (文字列)で、障害の原因を特定します。次のコードでは、 completionHandler を呼び出すときに connect() メソッド: session.connect(token, function (error) { if (error) { console.log(error.message); } else { console.log("Connected to session."); } }); なお、セッションに接続すると、Session オブジェクトは sessionConnected イベントに加え、 completionHandler. SessionConnectEvent オブジェクトは、 sessionConnected イベントには、以下が含まれます connections そして streams プロパティ。これには、接続時にセッション内の接続とストリームが一覧表示されます。 |
参照: : - SessionConnectEvent
disableForceMute() →{Promise}
セッションのアクティブなミュート状態を解除します。このメソッドを呼び出した後、 セッションに公開される新しいストリームの音声は、ミュートされなくなります。
に電話をかけた後、 Session.forceMuteAll() メソッド(または別の
クライアントのモデレーターが、すべてのストリームをミュートする呼び出しを行った場合)、モデレーションの呼び出し後に配信されるストリームは
すべて、音声がミュートされた状態で配信されます。 disableForceMute() セッションの
ミュート状態を解除する方法(これにより、新たに公開されるストリームが自動的にミュートされるのを防ぐ)。
このメソッドを呼び出すと、接続中の各クライアントのSessionオブジェクトが
muteForced イベントで active フラグが false.
チェック capabilities.canForceMute Session オブジェクトのプロパティを確認して、
この関数を正常に呼び出せるかどうかを確認してください。これは、モデレーターの役割が割り当てられたトークンを使用して接続した
クライアント専用です(
トークン作成
(ドキュメント)。
参照: : - Session.capabilities - Session.forceMuteAll() - muteForced イベント
リターンズ
操作が正常に完了した際に、値を持たない状態で解決されるプロミス。
エラーが発生した場合は、プロミスは拒否されます。
name Error オブジェクトのプロパティは、エラーの種類に応じて、以下のいずれかの
値に設定されます:
'OT_NOT_CONNECTED'— クライアントはセッションに接続されていません。'OT_PERMISSION_DENIED'— ユーザーのロールには、 他のユーザーを強制的にミュートにするために必要な権限が含まれていません。 ユーザーのロールは、ユーザートークンを作成する際に定義します( トークン作成の概要). トークン文字列をconnect()Session オブジェクトのメソッド。'OT_UNEXPECTED_SERVER_RESPONSE'— サーバー内部エラーが発生した場合。
disconnect() →{Promise.<void>}
Vonage Video API セッションを切断します。
を呼び出す。 disconnect() このメソッドは、セッションとの接続を終了させます。接続の
終了処理の過程で、ユーザーが配信していたストリームの
配信もすべて停止されます。
リモートクライアント上のセッションオブジェクトのディスパッチ streamDestroyed 配信していた
任意のストリームに対するイベント。Session オブジェクトは、 sessionDisconnected
ローカルでイベントを処理します。リモートクライアント上のSessionオブジェクトは、 connectionDestroyed
イベントを発生させ、他の接続先にセッションを離れたことを通知します。その
セッション切断イベント そして ストリームイベント を定義するオブジェクト
sessionDisconnect そして connectionDestroyed 各イベントにはそれぞれ
reason プロパティ。その reason このプロパティにより、開発者は、
接続が自発的に終了されているかどうか、および基となる接続の自発的な終了に伴い、
ストリームが破棄されているかどうかを判断できます。
セッションが現在接続されていない場合、このメソッドを呼び出すと警告がログに記録されます。 参照 OT.setLogLevel().
注: 1つのPublisherオブジェクトを再利用して、異なるセッション
(または同じセッション)に対して順次パブリッシュを行う場合は、 streamDestroyed
Publisher オブジェクトによってディスパッチされるイベント(パブリッシングが停止したとき)。イベントリスナー内で、
以下のメソッドを呼び出します。 preventDefault() イベントオブジェクトのメソッドを使用して、パブリッシャーの
動画がページから削除されるのを防ぎます。
ディスパッチされたイベント:
sessionDisconnected
(セッション切断イベント)
— 接続が切断された際に、ローカルで送信されます。
connectionDestroyed (ConnectionEvent) —
他のクライアントにも、以下の内容とともに送信されました。 streamDestroyed イベント(必要に応じて)。
streamDestroyed (ストリームイベント) —
セッションの切断によりストリームが失われた場合、他のクライアントに配信されます。
リターンズ
sessionDisconnected イベントが発生した際に解決されるプロミス
forceDisconnect(connection, completionHandler) →{Promise.<void>}
セッションを終了するために、リモート接続を強制的に切断します。
について forceDisconnect() この方法は通常、進行中のセッションからユーザーを排除するための
モデレーションツールとして使用されます。
接続が forceDisconnect(),
sessionDisconnected, connectionDestroyed そして
streamDestroyed イベントは、接続が
を使用して自ら切断された場合と同様にディスパッチされます。 disconnect()
メソッド。しかし、その reason プロパティの ConnectionEvent または
ストリームイベント object は以下を指定します "forceDisconnected" その理由として
接続およびストリームが切断されたことを挙げます。
以下の方法を使用することもできますが、 forceDisconnect() 自身の接続を終了させる方法として、
以下の関数を呼び出すことで、 disconnect() この方法の方が簡単です。
OTオブジェクトは、 exception たとえユーザーのロールに、
他のユーザーを強制的に切断させるために必要な権限が含まれていない場合でも。
ユーザーのロールは、ユーザートークンを作成する際に定義します(
トークン作成の概要).
参照 例外イベント そして OT.on().
セッションが接続されていない場合、アプリケーションはエラーを発生させます。
ディスパッチされたイベント:
connectionDestroyed (ConnectionEvent) —
接続が切断されたクライアント以外のクライアントについて。
exception (例外イベント) —
このユーザーの権限では、他のユーザーを強制的に切断させることはできません (event.code = 1530),
または、指定されたストリームがセッションに配信されていない場合(event.code = 1535).
sessionDisconnected
(セッション切断イベント) —
接続が切断されたクライアント上で。
streamDestroyed (ストリームイベント) —
接続が切断された結果、ストリームが停止した場合。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
connection |
接続 | セッションから切断する接続。この値は、次のいずれかです。 接続 オブジェクトまたは接続 ID(これは connectionId Connection オブジェクトのプロパティ)。 |
completionHandler |
機能 | (オプション) への呼び出しが行われた際に呼び出される関数 forceDiscononnect() メソッドが成功するか失敗するか。この関数は1つのパラメータを受け取ります―― error. 成功した場合、その completionHandler この関数には引数が渡されません。エラーが発生した場合、この関数には error オブジェクトパラメータ。その error オブジェクト。これは、 エラー class には、2つのプロパティがあります: code (整数)および message (文字列)で、これは障害の原因を特定するものです。 forceDisconnect() トークンに割り当てられた役割が「モデレーター」でない場合、処理は失敗します。この場合、 error.name プロパティが "OT_PERMISSION_DENIED". 以下のコードは、 completionHandler を呼び出すときに forceDisconnect() メソッド: session.forceDisconnect(connection, function (error) { if (error) { console.log(error); } else { console.log("Connection forced to disconnect: " + connection.id); } }); |
リターンズ
接続が切断されたときに解決されるプロミス
forceMuteAll(excludedStreams) →{Promise}
そのセッションに参加しているすべての配信者(除外されたストリームを配信している配信者を除く)に対し、 音声をミュートするように強制します。
を呼び出すモデレーターによって公開されたストリーム。 forceMuteAll() このメソッドは、
セッション内の他のストリームと同様にミュートされます。ただし、モデレーターのストリームを
「除外ストリーム」配列に追加した場合はこの限りではありません。
もし excludedStreams パラメータが設定されると、セッション内のすべてのストリーム
(モデレーターのストリームを含む)で音声の配信が停止します:
session.forceMuteAll();
また、以下の呼び出しの後に発行されるストリームは、すべて forceMuteAll() メソッド
は、音声をミュートした状態で公開されます。セッションのミュート状態を解除するには、
disableForceMute() Session オブジェクトのメソッド。
session.disableForceMute();
を呼び出した後 Session.disableForceMute() この方法により、セッションに新たに配信されるストリームでは、
音声がミュートされることはなくなります。
このメソッドを呼び出すと、ストリームを配信しているクライアント内のPublisherオブジェクトが
ディスパッチを実行します muteForced イベント。また、セッションに接続している各クライアント内の
Sessionオブジェクトは、 muteForced
イベント(~を含む) active イベントオブジェクトの true).
チェック capabilities.canForceMute Session オブジェクトのプロパティを確認して、
この関数を正常に呼び出せるかどうかを確認してください。これは、モデレーターの役割が割り当てられたトークンを使用して接続した
クライアント専用です(
トークン作成
(ドキュメント)。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
excludedStreams |
配列 | ミュート対象から除外する Stream オブジェクトの配列。ローカルクライアントが公開しているストリームをミュート対象から除外したい場合は、そのストリームに対応する Stream オブジェクトをこの配列に含める必要があることに注意してください。 |
参照: : - Session.capabilities - Session.forceMuteStream() - Session.disableForceMute() - セッションのmuteForcedイベント - パブリッシャーによる強制ミュートイベント - セッション内の ストリームの音声をミュートする
リターンズ
操作が正常に完了した際に、値を持たない状態で解決されるプロミス。
エラーが発生した場合は、プロミスは拒否されます。
name Error オブジェクトのプロパティは、エラーの種類に応じて、以下のいずれかの
値に設定されます:
'OT_NOT_CONNECTED'— クライアントはセッションに接続されていません。'INVALID_PARAMETER'— 渡されたパラメータのうち1つ以上が無効な場合。'OT_PERMISSION_DENIED'— ユーザーのロールには、 他のユーザーを強制的にミュートにするために必要な権限が含まれていません。 ユーザーのロールは、ユーザートークンを作成する際に定義します( トークン作成の概要). トークン文字列をconnect()Session オブジェクトのメソッド。'OT_UNEXPECTED_SERVER_RESPONSE'— サーバー内部エラーが発生した場合。
forceMuteStream(stream) →{Promise}
指定されたストリームの配信者に、音声のミュートを強制します。
このメソッドを呼び出すと、ストリームをパブリッシュしているクライアント側の Publisher オブジェクトが
をディスパッチします。 muteForced イベントを開催する。
チェック capabilities.canForceMute Session オブジェクトのプロパティを確認して、
この関数を正常に呼び出せるかどうかを確認してください。これは、モデレーターの役割が割り当てられたトークンを使用して接続した
クライアント専用です(
トークン作成
(ドキュメント)。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
stream |
ストリーム | ミュートするストリーム。 |
参照: : - Session.capabilities - Session.forceMuteAll() - パブリッシャーによる強制ミュートイベント - セッション内の ストリームの音声をミュートする
リターンズ
操作が正常に完了した際に、値を持たない状態で解決されるプロミス。
エラーが発生した場合は、プロミスは拒否されます。
name Error オブジェクトのプロパティは、エラーの種類に応じて、以下のいずれかの
値に設定されます:
'OT_NOT_CONNECTED'— クライアントはセッションに接続されていません。'OT_INVALID_PARAMETER'— 渡されたパラメータのうち1つ以上が無効な場合。'OT_PERMISSION_DENIED'— ユーザーのロールには、 他のユーザーを強制的にミュートにするために必要な権限が含まれていません。 ユーザーのロールは、ユーザートークンを作成する際に定義します( トークン作成の概要). トークン文字列をconnect()Session オブジェクトのメソッド。'OT_NOT_FOUND'— このセッションでは、そのストリームが見つかりませんでした。'OT_UNEXPECTED_SERVER_RESPONSE'— サーバー内部エラーが発生した場合。
forceUnpublish(stream, completionHandler) →{Promise.<void>}
指定されたストリームの配信元に対し、そのストリームの配信を停止するよう強制します。
このメソッドを呼び出すと、Session オブジェクトは streamDestroyed
ストリームを購読しているすべてのクライアント(ストリームを
公開しているクライアントを含む)で発生するイベント。この reason StreamEvent オブジェクトの property は
次のように設定されています "forceUnpublished".
OTオブジェクトは、 exception たとえユーザーのロールに、
他のユーザーの公開取り消しを強制するために必要な権限が含まれていない場合でも。
ユーザーのロールは、ユーザートークンを作成する際に定義します(
トークン作成の概要).
トークン文字列を connect() Session
オブジェクトのメソッド。参照: 例外イベント そして
OT.on().
ディスパッチされたイベント:
exception (例外イベント) —
このユーザーの権限では、他のユーザーに公開取り下げを強制することはできません。
streamDestroyed (ストリームイベント) —
ストリームの公開が解除されました。Sessionオブジェクトは、このストリームを購読しているすべてのクライアント
およびパブリッシャーのクライアントに対して、この通知を送信します。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
stream |
ストリーム | 公開を取り消すストリーム。 |
completionHandler |
機能 | (オプション) への呼び出しが行われた際に呼び出される関数 forceUnpublish() メソッドが成功するか失敗するか。この関数は1つのパラメータを受け取ります―― error. 成功した場合、その completionHandler この関数には引数が渡されません。エラーが発生した場合、この関数には error オブジェクトパラメータ。その error オブジェクト。これは、 エラー class には、2つのプロパティがあります: code (整数)および message (文字列)で、これは障害の原因を特定するものです。 forceUnpublish() トークンに割り当てられた役割が「モデレーター」でない場合、処理は失敗します。この場合、 error.name プロパティが "OT_PERMISSION_DENIED". 以下のコードは、 forceUnpublish() メソッド: session.forceUnpublish(stream, function (error) { if (error) { console.log(error); } else { console.log("Connection forced to disconnect: " + connection.id); } }); |
リターンズ
「非公開化」が行われた際に解決する約束
getPublisherForStream(stream) → {出版社}
指定されたストリームのローカルな Publisher オブジェクトを返します。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
stream |
ストリーム | パブリッシャーを検索したいストリーム。 |
参照: : - forceUnpublish() - 購読者 - ストリームイベント
リターンズ
指定されたストリームに対する Publisher オブジェクト。以下を返します。
null 指定されたストリームに対して、
ローカルの Publisher オブジェクトが存在しない場合。
getSubscribersForStream(stream) →{Array}
指定されたストリームに対するローカルなSubscriberオブジェクトの配列を返します。
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
stream |
ストリーム | チャンネル登録者数を調べたい配信です。 |
参照: : - unsubscribe() - 購読者 - ストリームイベント
リターンズ
の配列。 購読者 指定されたストリームのオブジェクト。
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 イベントハンドラ関数内で。 |
リターンズ
イベントを発生させたオブジェクト。
publish(publisher, completionHandler)
について publish() このメソッドは、セッションへの音声・動画ストリームの配信を開始します。
音声・動画ストリームは、ローカルのマイクとウェブカメラからキャプチャされます。配信が正常に
完了すると、接続中のすべてのクライアント上の Session オブジェクトが
streamCreated イベントを開催する。
このメソッドの唯一のパラメータとして、Publisher オブジェクトを渡します。
Publisher オブジェクトは、 OT.initPublisher()
メソッド。呼び出す前に Session.publish().
このメソッドには別の形式があります: publish(targetElement: String | HTMLElement, properties: Object, completionHandler: Function): Publisher — このフォームでは、次のように入力してください
違う 関数に Publisher オブジェクトを渡すのではなく、代わりに targetElement
(対象のHTML要素、またはパブリッシャーにおける対象のHTML要素のID)、オプションの
properties Publisher のオプションを定義するオブジェクト(参照:
OT.initPublisher())、およびオプションの完了ハンドラ関数。
このメソッドは新しい Publisher オブジェクトを返し、そのオブジェクトがセッションへの
オーディオ・ビデオストリームの送信を開始します。このドキュメントの残りの部分では、単一の Publisher
オブジェクトをパラメータとして受け取る形式について説明します。
公開されたストリームのローカル表示は、DOM内の指定された要素をストリーミング動画表示に置き換えることで、 Webページ上に作成されます。 動画ストリームは 自動的に水平方向にミラーリングされるため、ユーザーはストリーム内の自分自身や動きを 自然な形で確認できます。表示領域の幅と高さが 動画信号のアスペクト比 4:3 と一致しない場合、動画ストリームは表示領域に合わせて トリミングされます。
このメソッドを呼び出した際に新しい Publisher オブジェクトが作成され、Vonage Video API ライブラリが カメラまたはマイクへのアクセス権を持っていない場合、Web ページはユーザーに対し、カメラおよびマイクへの アクセス権を許可するよう促します。
OTオブジェクトは、 exception たとえユーザーのロールに
公開に必要な権限が含まれていない場合でも。たとえば、ユーザーのロールが「購読者」に設定されている場合、
そのユーザーは公開を行うことができません。ユーザーのロールは、ユーザートークンを作成する際に定義します
(参照: トークン作成の概要).
トークン文字列を connect() Session
オブジェクトのメソッド。参照: 例外イベント そして
OT.on().
セッションが接続されていない場合、アプリケーションはエラーを発生させます。
ディスパッチされたイベント:
exception (例外イベント) — OTオブジェクトによって
送信されます。これは、ユーザーのロールに公開権限がない場合に発生することがあります(
code イベントオブジェクトのプロパティが 1500 に設定されている場合)だけでなく、
接続に失敗した場合にも発生する可能性があります( code イベントオブジェクトのプロパティが 1013 に設定されている)。
WebRTC はピアツーピアプロトコルであるため、接続に失敗する場合があります。
失敗の最も一般的な原因は、プロトコルが通過できないファイアウォールです。
streamCreated (ストリームイベント) —
ストリームが公開されました。Sessionオブジェクトは、このストリームを購読しているすべてのクライアント
およびパブリッシャーのクライアントに対して、このイベントを配信します。
例
次の例は、セッションが接続されると動画を公開するものです:
var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
var sessionId = ""; // Replace with your own session ID.
// /developer/guides/create-session/.
var token = ""; // Replace with a generated token that has been assigned the publish role.
// See https://tokbox.com/developer/guides/create-token/.
var session = OT.initSession(apiKey, sessionID);
session.connect(token, function(error) {
if (error) {
console.log(error.message);
} else {
var publisherOptions = {width: 400, height:300, name:"Bob's stream"};
// This assumes that there is a DOM element with the ID 'publisher':
publisher = OT.initPublisher('publisher', publisherOptions);
session.publish(publisher);
}
});
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
publisher |
出版社 | Publisher オブジェクトは、 OT.initPublisher() メソッドを使用する。 |
completionHandler |
機能 | (オプション) への呼び出しが行われた際に呼び出される関数 publish() メソッドが成功するか失敗するか。この関数は1つのパラメータを受け取ります―― error. 成功した場合、その completionHandler この関数には引数が渡されません。エラーが発生した場合、この関数には error オブジェクトパラメータ(詳細は エラー オブジェクト)。その error このオブジェクトには2つのプロパティがあります: code (整数)および message (文字列)で、これは障害の原因を特定するものです。 publish() トークンに割り当てられたロールが「publisher」または「moderator」でない場合、処理は失敗します。この場合、 error.name プロパティが "OT_PERMISSION_DENIED". 呼び出し publish() クライアントの接続に失敗した場合も失敗となります。この場合、 error.name プロパティが "OT_NOT_CONNECTED". 以下のコードは、 publish() メソッド: session.publish(publisher, null, function (error) { if (error) { console.log(error.message); } else { console.log("Publishing a stream."); } }); |
リターンズ
このストリームの Publisher オブジェクト。
removeEventListener(type, listener, context)
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
type |
ストリング | イベントの種類を識別する文字列。 |
listener |
機能 | 削除するイベントリスナー関数。 |
context |
目的 | (任意)もし context, 指定されたすべてのイベントおよび、指定されたコンテキストを使用するイベントリスナーについて、イベントハンドラが削除されます。(コンテキストは、 addEventListener().) |
非推奨 — 使い方 off() その代わりだ。
特定のイベントに対するイベントリスナーを解除します。
以下の場合、例外をスローします。 listener 名前が無効です。
setEncryptionSecret(secret) →{Promise}
エンドツーエンド暗号化が有効になっているセッションの暗号化シークレットを設定します。暗号化が有効になっていないセッションでこのメソッドが呼び出された場合、 この関数は正常に処理され、エラーは発生しません。ユーザーは、設定済みの暗号化キーを いつでも変更できます。エンドツーエンド暗号化については、 開発者ガイド.
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
secret |
ストリング | 暗号化の秘密鍵。 |
参照: : - OT.initSession - 加入者向けイベント
リターンズ
操作が正常に完了した際に、値を持たない状態で解決されるプロミス。
エラーが発生した場合は、プロミスは拒否されます。
name Error オブジェクトのプロパティは、エラーの種類に応じて、以下のいずれかの
値に設定されます:
'OT_INVALID_ENCRYPTION_SECRET'; パスワードが無効です。
エラーがディスパッチされない場合、密かな不一致が発生する可能性があります。詳しくは 加入者向けイベント をご覧ください。
setIceConfig(newIceConfig)
セッション内のすべての接続に対してICE設定を指定します。これにより、以前に 設定されていたICE設定はすべて上書きされます。
この機能は、 設定可能 TURNサーバーアドオン.
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
newIceConfig |
IceConfig | このオブジェクトは、ICEの設定を定義します。以下のプロパティを持っています。 - includeServers (文字列) — これを「custom」に設定すると、クライアントは customServers の プロパティ newIceConfig パラメータ。これを「all」に設定すると、クライアントは、指定したカスタムTURNサーバーとVonage Video APIのTURNサーバーの両方を使用します。 - transportPolicy (文字列) — これを「all」(デフォルト)に設定すると、クライアントはメディア接続を確立するために、すべての ICE トランスポートタイプ(host、srflx、TURN など)を使用します。これを「relay」に設定すると、常に TURN 経由での接続を強制し、他のすべての ICE 候補を無視します。- customServers (配列) — ここに、カスタム TURN サーバーを定義するオブジェクトの配列を設定します。各オブジェクトは 1 つのカスタム TURN サーバーに対応し、以下のプロパティを含みます: - urls (文字列または文字列の配列) — 文字列または文字列の配列。各文字列は、TURN サーバーがサポートする URL である(URL は 1 つだけの場合もある)。 - username (文字列、省略可) — このオブジェクトで定義された TURN サーバーのユーザー名。 - credential (文字列、オプション) — このオブジェクトで定義された TURN サーバーの認証情報文字列。 |
参照: : - OT.initSession()
signal(signal, completionHandler) →{Promise.<void>}
セッション内の各クライアント、または指定したクライアントにシグナルを送信します。指定する
to プロパティの signal 特定のクライアントにのみシグナルを送信するように制限するパラメータ。
このパラメータを指定しない場合、そのセッションに接続している
すべてのクライアントにシグナルが送信されます。
次の例では、指定されたデータペイロード(「hello」)を含む「foo」型のシグナルを、 そのセッションに接続しているすべてのクライアントに送信します:
try {
await session.signal({
type: "foo",
data: "hello"
});
console.log("signal sent");
} catch (error) {
console.log("signal error: " + error.message);
}
受信クライアントを指定せずにこのメソッドを呼び出す( to
の属性 signal パラメータ)を設定すると、複数のシグナルが送信されます(セッション内の各
クライアントに1つずつ)。シグナリングの料金については、
Vonage Video API の料金体系 ページを参照されたい。
次の例では、データペイロード(「hello」)を含む「foo」型のシグナルを、 そのセッションに接続している特定のクライアントに送信します:
try {
await session.signal({
type: "foo",
to: recipientConnection, // a Connection object
data: "hello"
});
console.log("signal sent");
} catch (error) {
console.log("signal error: " + error.message);
}
のイベントハンドラを追加します signal セッション内で送信されるすべてのシグナルを監視するためのイベント。
このイベントのイベントハンドラを追加します。 signal:type 指定されたタイプのシグナルのみを
リッスンするイベント( type, において signal:type,
(監視対象のシグナルの種類を指定して)。Session オブジェクトは、これらのイベントをディスパッチします。(参照:
イベント.)
パラメータ:
| 名称 | タイプ | 説明 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
signal |
目的 | 信号を定義する以下のプロパティを含むオブジェクト: - data — (文字列) 送信するデータ。データ文字列の長さの制限は 8kB です。データ文字列を null または undefined. - retryAfterReconnect— (ブール値) セッションへの再接続時に、接続が切断されていた間に開始されたシグナルを送信するかどうか。ネットワーク接続の切断により、クライアントが Vonage Video API セッションとの接続を失った場合、クライアントはセッションへの再接続を試み、Session オブジェクトは reconnecting イベント。デフォルトでは、接続が切断されている間に発生したシグナルは、クライアントがVonage Video APIセッションに再接続した際(再接続された場合)に送信されます。これを防ぐには、 retryAfterReconnect プロパティ false. (デフォルト値は true.) - to — (接続) A 接続 メッセージの送信先となるクライアントに対応するオブジェクト。このプロパティを指定しない場合、シグナルはセッションに接続しているすべてのクライアントに送信されます。 - type — (文字列) シグナルのタイプ。このタイプを使用して、イベントハンドラを設定する際にシグナルをフィルタリングすることができます。 signal:type イベント (ここで type (型文字列付き)。の最大長は type 文字列は128文字で、文字(A-Zおよびa-z)、Numbers(0-9)、'-'、'_'、および'~'のみを含める必要があります。各プロパティはオプションです。 どのプロパティも設定しない場合、そのセッションに接続している各クライアントに対して、データや型を含まないシグナルが送信されます。 |
||||||||||||||||||
completionHandler |
機能 | (オプション)シグナルの送信が成功または失敗した際に呼び出される関数。この関数は1つのパラメータを受け取ります―― error. 成功した場合、その completionHandler この関数には引数が渡されません。エラーが発生した場合、この関数には error オブジェクト。これは、 エラー クラスである。その error このオブジェクトには、以下のプロパティがあります: - code — (番号) エラーコード。以下のいずれかになります。 |
--- | --- | 400 | シグナルのプロパティのうち1つが無効です。 | 404 | によって指定されたクライアントは、 to このプロパティはセッションに関連付けられていません。 |
413 | について type 文字列が最大長(128 バイト)を超えているか、あるいは data 文字列が最大サイズ(8 kB)を超えています。 |
500 | Vonage Video API セッションに接続されていません。 | - message — (文字列) エラーの説明。なお、 completionHandler 成功結果 (error == null) は、 Session.signal() メソッドが有効であり、シグナルが送信されました。それは 違う その信号が、対象となる受信者のいずれかによって正常に受信されたことを示す。 |
参照: : - 信号 そして signal:type イベント
リターンズ
シグナルが送信された時点で解決するプロミス
subscribe(stream, targetElement, properties, completionHandler) → {購読者}
そのセッションで利用可能なストリームを購読します。利用可能なストリームの配列は、
から取得できます。 streams プロパティの sessionConnected
そして streamCreated イベント(参照:
SessionConnectEvent そして
ストリームイベント).
購読したストリームは、DOM内の指定された要素を ストリーミング動画の表示に置き換えることで、ローカルWebページ上に表示されます。表示領域の幅と高さが 動画信号のアスペクト比4:3と一致しない場合、動画ストリームは表示領域に合わせて トリミングされます。 ストリームにビデオコンポーネントが含まれていない場合、ビデオストリームの代わりに、 オーディオインジケーターが表示された空白の画面が表示されます。
セッションが接続されていない場合、または
targetElement HTML DOM には存在しません。
例
以下のコードは、他のクライアントのストリームを購読するものです:
var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
var sessionID = ""; // Replace with your own session ID.
// See https://tokbox.com/developer/guides/create-session/.
var token = ""; // Replace with a generated token.
// See https://tokbox.com/developer/guides/create-token/.
var session = OT.initSession(apiKey, sessionID);
session.on("streamCreated", function(event) {
subscriber = session.subscribe(event.stream, targetElement);
});
session.connect(token);
パラメータ:
| 名称 | タイプ | 説明 | |
|---|---|---|---|
stream |
ストリーム | 購読しようとしているストリームを表す Stream オブジェクト。 | |
targetElement |
目的 | (任意)DOM要素、または id HTML DOM 内のサブスクライバー動画の位置を特定するために使用される、既存の DOM 要素の属性。詳しくは、 insertMode プロパティの properties パラメータ。もし targetElement, アプリケーションはHTMLに新しいDOM要素を追加します body. |
|
properties |
目的 | これは、以下のプロパティを含むオブジェクトです: - audioVolume (数値) — 「Subscriber」を最初に開いた際の、0 から 100 の範囲で指定する希望の音量(デフォルト:50)。ストリームを購読した後、 setAudioVolume() 方法 Subscriber オブジェクトの。この音量設定はローカルでの再生にのみ影響し、他のクライアントでのストリームの音量には影響しません。 - fitMode (文字列) — 動画のサイズが DOM 要素のサイズと一致しない場合に、動画がどのように表示されるかを決定します。このプロパティには、以下のいずれかの値を設定できます。 - "cover" — 動画のサイズが DOM 要素のサイズと一致しない場合、動画はトリミングされます。これは、カメラをソースとする動画( videoType プロパティ を "camera"). - "contain" — 動画のサイズがDOM要素のサイズと一致しない場合、動画はレターボックス表示されます。これは、画面共有動画( videoType プロパティが次のように設定されています "screen"). - height (数値または文字列) — HTML ページに表示される動画の初期の高さ (デフォルト: 198 ピクセル)。ピクセル数は、数値 (例: 300) または末尾が「px」で終わる文字列 (例: 「300px」) で指定できます。 あるいは、親要素のサイズに対する割合を、「%」で終わる文字列(例:「100%」)で指定することもできます。 注: 動画のサイズを変更するには、購読者の DOM 要素( element Subscriber オブジェクトのプロパティ)または(高さがパーセンテージで指定されている場合は)その親 DOM 要素(参照: 動画のリサイズや位置変更). - insertDefaultUI (ブール値) — デフォルトのVonage Video API UIを使用するかどうか (true(デフォルト)か、そうでないか(false). デフォルトの UI 要素には、動画に加えて、ユーザーインターフェースのコントロール、動画の読み込みインジケーター、および動画の自動トリミングやレターボックス表示機能が含まれています。(もし insertDefaultUI に設定する true, 以下の方法を使用して、個々のUI設定を制御できます。 fitMode, showControlsそして style オプション。)このオプションを false, OpenTok.js は HTML DOM にデフォルトの UI 要素を挿入せず、その element Subscriber オブジェクトの property は undefined です。Subscriber オブジェクトは videoElementCreated イベントが 発生したとき video 要素(インターネットエクスプローラでは object (動画を含む要素)が作成されます。その element イベントオブジェクトのプロパティは、サブスクライバーへの参照です。 video (または object) 要素。これを HTML DOM に追加して、動画を表示します。このオプションを false 発行元を移動したい場合は、 video 要素(またはその object Internet Explorer の要素)を HTML DOM 内に配置します。これを falseを設定しないでください。 targetElement パラメータ。(これにより、エラーが OT.initPublisher() コールバック関数。)動画をHTML DOMに追加するには、 videoElementCreated イベント、そして次に element イベントオブジェクトのプロパティをHTML DOMに追加します。 - insertMode (文字列) — Subscriber オブジェクトが HTML DOM にどのように挿入されるかを指定します。詳しくは、 targetElement パラメータ。この文字列には、以下の値が指定できます: - "replace" — Subscriber オブジェクトは、targetElement の内容を置き換えます。これがデフォルトの設定です。 - "after" — Subscriber オブジェクトは、HTML DOM 内の targetElement の後に挿入される新しい要素です。(Subscriber と targetElement は、どちらも同じ親要素を持っています。) - "before" — Subscriber オブジェクトは、HTML DOM 内の targetElement の前に挿入される新しい要素です。(Subscriber と targetElement は、どちらも同じ親要素を持っています。) - "append" — Subscriber オブジェクトは、targetElement の子要素として追加される新しい要素です。他の子要素が存在する場合、Subscriber は targetElement の最後の子要素として追加されます。 - preferredFrameRate (数値) — サブスクライバーの動画の推奨フレームレート。推奨フレームレートを下げると、サブスクライブしているクライアント側の動画品質は低下しますが、ネットワークおよびCPUの使用量も削減されます。 他のストリームに比べて重要度の低いストリームを購読するユーザーに対しては、より低いフレームレートを使用することを検討するとよいでしょう。このプロパティは、 スケーラブルビデオ機能. スケーラブルビデオが利用可能です: - Vonage Video API Media Router を使用するセッションでのみ利用可能です( メディア モード (「routed」に設定)。 - スケーラブルビデオをサポートするクライアントによって配信されるストリームのみ対象: Vonage Video API iOS Client SDK(特定のデバイス上)、Vonage Video API Android Client SDK(特定のデバイス上)、またはChromeおよびSafariでのOpenTok.jsを使用するクライアント。 スケーラブルビデオを使用しないストリームでは、このプロパティを設定しても効果はありません。 注: スケーラブルビデオストリームのフレームレートは、このメソッドを呼び出さなくても、ネットワーク状況やCPU使用率に基づいて、各サブスクライバーごとに自動的に調整されます。このサブスクライバーの最大フレームレートを設定したい場合は、このメソッドを呼び出してください。 加入者がすべてのフレームレートを利用できるわけではありません。加入者の優先フレームレートを設定すると、OpenTok.js はその設定に一致する利用可能な最適なフレームレートを選択します。利用可能なフレームレートは、Subscriber オブジェクトの stream.frameRate このプロパティは、ストリームで利用可能な最大値を表します。実際に利用可能なフレームレートは、パブリッシャーとサブスクライバーが利用できるネットワークおよび CPU リソースに応じて動的に変化します。呼び出すことで、使用される優先フレームレートを動的に変更することができます。 setPreferredFrameRate() Subscriber オブジェクトのメソッド。 - preferredResolution (文字列 |
オブジェクト) — 加入者の動画の推奨解像度。これを次のように設定してください。 "auto" (文字列、推奨) を指定すると、OpenTok.js がブラウザ上の加入者のサイズに基づいて解像度を設定します。あるいは、以下の 2 つのプロパティを持つオブジェクトを指定することもできます: width そして height (両方の数値)、例えば {width: 320, height: 240}. 推奨動画解像度を下げると、サブスクライバー側の動画画質は低下しますが、ネットワーク負荷やCPU使用率も軽減されます。ウェブページ上のサブスクライバーの動画のサイズに応じて、より低い解像度を使用することを検討してもよいでしょう(これは "auto" 設定)。あるいは、他のストリームに比べて重要度が低く(かつ規模が小さい)ストリームの購読者に対しては、より低い解像度を使用したい場合もあるでしょう。 注: について "auto" 解像度の設定は、SDKによって作成されたデフォルトの「Subscriber Video」要素を使用する場合にのみ適用されます。これに応じて独自の「Video」要素を作成した場合は、この設定は機能しません。 mediaStreamAvailable イベント(参照: 本題). このプロパティは、 スケーラブルビデオ機能. スケーラブルビデオが利用可能です: - Vonage Video API Media Router を使用するセッションでのみ利用可能です( メディア モード (「routed」に設定)。 - スケーラブルビデオをサポートするクライアントによって公開されたストリームのみ対象: Vonage Video API iOS SDK(特定のデバイス上)、Vonage Video API Android SDK(特定のデバイス上)、またはChromeおよびSafariでのOpenTok.jsを使用するクライアント。 スケーラブルビデオを使用しないストリームでは、このプロパティを設定しても効果はありません。 加入者がすべての解像度を利用できるわけではありません。優先解像度を設定すると、 OpenTok.js およびビデオエンコーダーは、設定に一致する利用可能な最適な解像度を選択します。利用可能な解像度は、配信されるストリームの解像度によって異なります。 Subscriber オブジェクトの stream.resolution このプロパティは、そのストリームで利用可能な最高解像度を表します。ストリームで利用可能な各解像度は、すべて同じアスペクト比を使用します。実際に利用可能な解像度は、パブリッシャーとサブスクライバーが利用できるネットワークおよび CPU リソースに応じて動的に変化します。 setPreferredResolution() Subscriber オブジェクトのメソッド。 - showControls (ブール値) — サブスクライバー用の組み込みユーザーインターフェースコントロールを表示するかどうか(既定値: true). これらのコントロールには、名前表示、オーディオレベルインジケーター、スピーカー制御ボタン、ビデオ無効インジケーター、およびビデオ無効警告アイコンが含まれます。このプロパティを false. このプロパティを次の値に設定したままにしておくことで、個々のユーザーインターフェースコントロールの表示を制御できます。 true (デフォルト)およびの個々のプロパティを設定し、 style プロパティ。 - style (オブジェクト) — サブスクライバーのユーザーインターフェースコントロールの初期の外観を定義するプロパティを含むオブジェクト。この style object には、以下のプロパティが含まれます: - audioBlockedDisplayMode (文字列) — 「購読者」画面で、デフォルトの「音声再生ブロック中」アイコンを表示するかどうか(音声の自動再生がブロックされているブラウザの場合)。取り得る値は以下の通りです: "auto" (オーディオが無効になっているときは、デフォルトのアイコンが表示されます)および "off" (アイコンは表示されません)。これを次のように設定してください。 "off" オーディオがブロックされていることを示す独自のUI要素を表示したい場合。HTML要素が click イベントでは、次の関数を呼び出すことができます。 OT.unblockAudio() このサブスクライバーおよびその他のすべてのブロックされたサブスクライバーで、オーディオの再生を開始する方法。 - audioLevelDisplayMode (文字列) — オーディオレベルインジケーターの表示方法。指定可能な値は次のとおりです: "auto" (動画が無効になっているときは、このインジケーターが表示されます)、 "off" (インジケーターが表示されない)、および "on" (このインジケーターは常に表示されます)。 - backgroundImageURI (文字列) — 動画が表示されない場合に背景画像として表示する画像の URI です。(以下の関数を呼び出すと、動画が表示されない場合があります。 subscribeToVideo(false) (Subscriber オブジェクト上で)。PNG、JPEG、または非アニメーションGIFファイルの場所を示す http または https URI を渡すことができます。また、 data URIスキーマ(httpやhttpsの代わりに)を使用し、base64エンコードされた PNGデータを渡します。例えば、 Subscriber.getImgData() メソッド。(たとえば、 プロパティを、呼び出しによって返される値に設定することもできます。 getImgData() (以前のSubscriberオブジェクトに対して。)URLまたは画像データが無効な場合、このプロパティは無視されます(画像の設定はエラーを返さずに失敗します)。 - buttonDisplayMode (文字列) — スピーカーコントロールの表示方法 取り得る値は次のとおりです: "auto" (コントロールは、ストリームが最初に表示されたとき、およびユーザーがディスプレイ上にマウスを合わせると表示されます)、 "off" (コントロールは表示されません)、そして "on" (コントロールは常に表示されます)。 - nameDisplayMode (文字列) — ストリーム名を表示するかどうか。 取り得る値は次のとおりです: "auto" (この名前は、ストリームが最初に表示されたとき、およびユーザーがマウスカーソルをその表示の上に合わせたときに表示されます)、 "off" (名前は 表示されません)、そして "on" (名前は常に表示されます)。 - videoDisabledDisplayMode (文字列) — サブスクライバーに対して、動画の再生不可インジケーターおよび再生不可警告アイコンを表示するかどうか。これらのアイコンは、ストリームの品質が低いため、動画の再生が停止されていること(警告アイコンの場合は、再生停止の恐れがあること)を示します。このスタイルはサブスクライバーオブジェクトにのみ適用されます。取り得る値は以下の通りです: "auto" (これらのアイコンは、表示中の動画が再生停止状態にある場合、またはストリームの画質が低いために再生停止になる恐れがある場合に自動的に表示されます)、 "off" (アイコンを表示しない)、および "on" (アイコンを表示する)。デフォルト設定は "auto" - subscribeToAudio (ブール値) — ストリームのオーディオ(利用可能な場合)を初期状態で購読するかどうか(デフォルト: true). - subscribeToVideo (ブール値) — ストリームの動画(利用可能な場合)を初期状態で購読するかどうか(デフォルト: true). - subscribeToCaptions (ブール値) — ストリームの字幕(利用可能な場合)を初期状態で購読するかどうか(デフォルト:ストリームのパブリッシャーの「字幕」の値)。 - testNetwork (ブール値) — ローカルクライアントによって公開されたストリームを購読する際、そのストリームをVonage Video API Media Routerから取得するかどうか(true) あるいは、DOMにローカルカメラの映像を単に表示させたい場合は(false). これを次のように設定します。 true …を使用したい場合は、 Subscriber.getStats() 配信するストリームの統計情報を確認する方法。この設定は、Vonage Video API Media Router を使用するセッションにおいて、ローカルクライアントによって配信されるストリームにのみ適用されます( メディアモード (ルーティング設定)に設定されている場合を除き、メディアモードが中継に設定されているセッションでは適用されません。デフォルト値は false. - width (数値または文字列) — HTML ページに表示される動画の初期幅(デフォルト:264 ピクセル)。ピクセル数は、数値(例:400)または末尾が「px」で終わる文字列(例:「400px」)で指定できます。 あるいは、親要素のサイズに対する割合を、「%」で終わる文字列(例:「100%」)で指定することもできます。 注: 動画のサイズを変更するには、購読者の DOM 要素( element Subscriber オブジェクトのプロパティ)または(幅がパーセンテージで指定されている場合は)その親 DOM 要素(参照: 動画のリサイズや位置変更). |
completionHandler |
機能 | (オプション) への呼び出しが行われた際に呼び出される関数 subscribe() メソッドが成功するか失敗するか。この関数は1つのパラメータを受け取ります―― error. 成功した場合、その completionHandler この関数には引数が渡されません。エラーが発生した場合、この関数には error オブジェクト。これは、 エラー class には、2つのプロパティがあります: code (整数)および message (文字列)で、障害の原因を特定します。次のコードでは、 completionHandler を呼び出すときに subscribe() メソッド: session.subscribe(stream, "subscriber", null, function (error) { if (error) { console.log(error.message); } else { console.log("Subscribed to stream: " + stream.id); } }); |
リターンズ
このストリームのSubscriberオブジェクト。ストリーム制御機能は、 Subscriberオブジェクトを通じて利用可能です。
unpublish(publisher)
指定されたパブリッシャーのオーディオ・ビデオストリームの
セッションへの配信を停止します。デフォルトでは、オーディオ・ビデオストリームのローカル表現が
Webページから削除されます。終了が正常に行われると、接続されているすべての
Webページ上のSessionオブジェクトが
a streamDestroyed イベントを開催する。
パブリッシャーがDOMから削除されるのを防ぐには、
streamDestroyed Publisher オブジェクトによってディスパッチされたイベントを呼び出し、
preventDefault() イベントオブジェクトのメソッド。
注: 1つのPublisherオブジェクトを再利用して、異なるセッション
(または同じセッション)に対して順次パブリッシュを行う場合は、 streamDestroyed
Publisher オブジェクトによってディスパッチされるイベント(パブリッシングが停止したとき)。イベントリスナー内で、
以下のメソッドを呼び出します。 preventDefault() イベントオブジェクトのメソッドを使用して、パブリッシャーの
動画がページから削除されるのを防ぎます。
ディスパッチされたイベント:
streamDestroyed (ストリームイベント) —
パブリッシャーに関連付けられたストリームが破棄されました。このイベントは、
パブリッシャーのブラウザ上でパブリッシャーによって送信されました。また、
パブリッシャーのストリームを購読している他のすべての接続において、セッションオブジェクトによって送信されました。
例
次の例では、ストリームをセッションに配信し、 Web ページに「切断」リンクを追加します。このリンクをクリックすると、ストリームの配信が停止します。
<script>
var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
var sessionID = ""; // Replace with your own session ID.
// See https://tokbox.com/developer/guides/create-session/.
var token = ""; // Replace with a generated token.
// See https://tokbox.com/developer/guides/create-token/.
var publisher;
var session = OT.initSession(apiKey, sessionID);
session.connect(token, function(error) {
if (error) {
console.log(error.message);
} else {
// This assumes that there is a DOM element with the ID 'publisher':
publisher = OT.initPublisher('publisher');
session.publish(publisher);
}
});
function unpublish() {
session.unpublish(publisher);
}
</script>
<body>
<div id="publisherContainer/>
<br/>
[Stop Publishing](javascript:unpublish())
</body>
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
publisher |
出版社 | ストリーミングを停止する Publisher オブジェクト。 |
参照: : - publish() - streamDestroyed イベント
購読解除(購読者)
セッション内のストリームの購読を停止します。オーディオ・ビデオストリームの表示が ローカルのウェブページから削除されます。
例
以下のコードは、他のクライアントのストリームを購読します。また、各ストリームについて、 このコードは「購読解除」リンクも追加します。
var apiKey = ""; // Replace with your API key. See See https://tokbox.com/account
var sessionID = ""; // Replace with your own session ID.
// See https://tokbox.com/developer/guides/create-session/.
var token = ""; // Replace with a generated token.
// See https://tokbox.com/developer/guides/create-token/.
var streams = [];
var session = OT.initSession(apiKey, sessionID);
session.on("streamCreated", function(event) {
var stream = event.stream;
displayStream(stream);
});
session.connect(token);
function displayStream(stream) {
var div = document.createElement('div');
div.setAttribute('id', 'stream' + stream.streamId);
var subscriber = session.subscribe(stream, div);
subscribers.push(subscriber);
var aLink = document.createElement('a');
aLink.setAttribute('href', 'javascript: unsubscribe("' + subscriber.id + '")');
aLink.innerHTML = "Unsubscribe";
var streamsContainer = document.getElementById('streamsContainer');
streamsContainer.appendChild(div);
streamsContainer.appendChild(aLink);
streams = event.streams;
}
function unsubscribe(subscriberId) {
console.log("unsubscribe called");
for (var i = 0; i < subscribers.length; i++) {
var subscriber = subscribers[i];
if (subscriber.id == subscriberId) {
session.unsubscribe(subscriber);
}
}
}
パラメータ:
| 名称 | タイプ | 説明 |
|---|---|---|
subscriber |
購読者 | 購読を解除する対象のSubscriberオブジェクト。 |
参照: : - subscribe()
イベント
アーカイブの開始
セッションのアーカイブ録画が開始されたときに送信されます。
アーカイブ停止
セッションのアーカイブ録画が停止したときに送信されます。
接続が作成されました
新しいクライアント(自身を含む)がセッションに接続した際にディスパッチされ、また、
セッション内の各クライアントが最初に接続した際にもディスパッチされます。(Session オブジェクトも
a sessionConnected (ローカルクライアントが接続した際のイベント。)
参照: : - ConnectionEvent - OT.initSession()
接続が切断されました
ご自身のクライアント以外のクライアントが、セッションから切断されました。
参照: : - ConnectionEvent
cpuPerformanceChanged
CPUのパフォーマンス状態が変更されました。これは、 「nominal」、「fair」、「serious」、または「critical」のいずれかに設定できます。
参照: : - CpuPerformanceChangedEvent
muteForced
モデレーターが、そのセッションにストリームを配信しているクライアントに対し、音声をミュートするよう強制しました(その
active この MuteForcedEvent オブジェクトのプロパティは、 true)、あるいは
モデレーターがセッション内の音声ミュート状態を無効にした場合(その active
この MuteForcedEvent オブジェクトのプロパティは、 false).
参照: : - MuteForcedEvent - Session.forceMuteAll() - Session.disableForceMute() - セッション内の ストリームの音声をミュートする
sessionConnected
クライアントがVonage Video APIセッションに接続しました。このイベントは、
への呼び出しが成功したことを受けて、非同期的にディスパッチされます。 connect() Session
オブジェクトのメソッド。 connect() メソッドでは、
を呼び出してセッションを初期化します。 OT.initSession() メソッド。コード例や詳細については、
以下を参照してください。 Session.connect().
参照: : - SessionConnectEvent - Session.connect() - OT.initSession()
セッションが切断されました
クライアントがセッションから切断されました。このイベントは、
への呼び出しが成功したことを受けて、非同期的にディスパッチされる場合があります。 disconnect() Session オブジェクトのメソッド。
また、ネットワーク接続が切断された場合など、意図せずセッション接続が失われた際にも、
このイベントがディスパッチされることがあります。
デフォルトの動作では、すべてのSubscriberオブジェクトの登録が解除され、
HTML DOMから削除されます。各Subscriberオブジェクトは、 destroyed 要素がHTML DOMから
削除されたときに発生するイベントです。もし preventDefault() イベントのリスナー内の
メソッド sessionDisconnect イベントが発生すると、デフォルトの動作は抑制され、
必要に応じて、独自のコードを使用してSubscriberオブジェクトをクリーンアップすることができます。
について reason イベントオブジェクトのこのプロパティは、クライアントが
切断された理由を示します。
参照: : - Session.disconnect() - Session.forceDisconnect() - セッション切断イベント
sessionReconnected
ローカルクライアントは、一時的に接続が切断された後、Vonage Video API セッションに再接続しました。
接続が切断されると、Session オブジェクトは
sessionReconnecting イベント、その前の sessionReconnected
イベント。クライアントがセッションに再接続できない場合、Session オブジェクトは
sessionDisconnected このイベントの代わりに、別のイベント。
クライアントが再接続すると、既存のパブリッシャーおよびサブスクライバーは自動的に再接続され、 Session オブジェクトがこのイベントをディスパッチします。
クライアントが切断されていた間に他のクライアントから送信されたシグナルは、
再接続時に受信されます。デフォルトでは、切断中にローカルクライアントによって
( Session.signal() メソッド)は、クライアントがVonage Video APIセッションに再接続した際に送信されます。これを防ぐには、 retryAfterReconnect
プロパティを false での signal オブジェクトに渡します。
Session.signal() メソッドを使用する。
参照: : - イベント - sessionReconnecting イベント - sessionDisconnected イベント
セッションの再接続中
ローカルクライアントがVonage Video APIセッションとの接続を失い、再接続を試みています。
これはネットワーク接続の切断によるものです。クライアントがセッションに再接続できた場合、
Sessionオブジェクトは sessionReconnected イベント。それ以外の場合、クライアントが
再接続できないと、Session オブジェクトは sessionDisconnected イベントを開催する。
この事象に対応するため、ユーザーインターフェース上で通知を表示し、 アプリがセッションへの再接続を試みていること、および音声・映像ストリームが 一時的に切断されていることをユーザーに知らせることをお勧めします。
参照: : - イベント - sessionReconnected イベント - sessionDisconnected イベント
信号
セッションから信号を受信しました。その シグナルイベント このクラスは、このイベントオブジェクトを定義しています。これには、以下のプロパティが含まれます:
data— (文字列) シグナルとともに送信されるデータ文字列( ある場合)。from— (接続) 接続 シグナルを送信したクライアントに対応する接続。type— (文字列) シグナルに割り当てられた型(ある場合 )。
イベントハンドラを追加することで、そのセッションで送信されるすべてのシグナルを受信するように登録できます。
その signal イベント。たとえば、次のコードは、セッション内で送信されるすべてのシグナルを処理するためのイベントハンドラを
追加します:
session.on("signal", function(event) {
console.log("Signal sent from connection: " + event.from.id);
console.log("Signal data: " + event.data);
});
指定したタイプのシグナルを登録するには、その
signal:type イベント(置き換え) type (フィルタリングの対象となる
実際の型文字列を指定して)。
参照: : - Session.signal() - シグナルイベント - signal:type イベント
streamCreated
このセッション上で、別のクライアントによって公開された新しいストリームが作成されました。自身のクライアントによって公開されたストリームの場合、Publisher オブジェクトは streamCreated
イベント。コード例や詳細については、以下を参照してください。 ストリームイベント.
参照: : - ストリームイベント - Session.publish()
streamDestroyed
別のクライアントからのストリームが、セッションへの配信を停止しました。
デフォルトの動作では、そのストリームを購読しているすべてのSubscriberオブジェクトの
購読が解除され、HTML DOMから削除されます。各Subscriberオブジェクトは、
destroyed 要素がHTML DOMから削除されたときに発生するイベントです。もし
preventDefault() のイベントリスナー内のメソッド
streamDestroyed イベントが発生すると、デフォルトの動作が抑制され、そのストリームの
Subscriber オブジェクトを、その destroy() メソッド。参照:
Session.getSubscribersForStream().
自身のクライアントによって公開されたストリームの場合、Publisher オブジェクトは
streamDestroyed イベントを開催する。
コード例や詳細については、以下を参照してください。 ストリームイベント.
参照: : - ストリームイベント
streamPropertyChanged
ストリームのプロパティが変更された際にディスパッチされるイベントを定義します。これは、 以下の状況で発生する可能性があります:
- ストリームによる音声、字幕、または動画の配信が開始または停止されました(参照:
Publisher.publishAudio(),
Publisher.publishCaptions() そして
Publisher.publishVideo()). 注:
チャンネル登録者の動画は、配信者が無効化または有効化した以外の理由によって、
無効化または有効化される場合があります。Subscriber オブジェクトは
videoDisabledそしてvideoEnabledあらゆる 状況において、サブスクライバーのストリームが無効化または有効化される原因となるイベント。 - について
videoDimensionsStream オブジェクトのプロパティが 変更されました(参照: Stream.videoDimensions). - について
videoTypeStream オブジェクトのプロパティが変更されました。 これは、モバイルデバイスによって公開されたストリームで発生する可能性があります。(参照: Stream.videoType.)
参照: : - StreamPropertyChangedイベント - Publisher.publishAudio() - Publisher.publishCaptions() - Publisher.publishVideo() - Stream.hasAudio - Stream.hasCaptions - Stream.hasVideo - Stream.videoDimensions - 登録者向け動画「無効化」イベント - 「Subscriber videoEnabled」イベント
signal:type
セッションから、指定されたタイプの信号を受信しました。その シグナルイベント このクラスは、このイベントオブジェクトを定義しています。 このオブジェクトには、以下のプロパティが含まれています:
data— (文字列) シグナルとともに送信されるデータ文字列。from— (接続) 接続 シグナルを送信したクライアントに対応する接続。type— (文字列) シグナルに割り当てられた型(ある場合)。
指定したタイプのシグナルを登録するには、その
signal:type イベント(置き換え) type (フィルタリング対象となる
実際の型文字列)。たとえば、次のコードは、
型「foo」のシグナルに対するイベントハンドラを追加します:
session.on("signal:foo", function(event) {
console.log("foo signal sent from connection " + event.from.id);
console.log("Signal data: " + event.data);
});
登録すると、以下の情報を受け取ることができます すべて セッション内で送信されたシグナルに対し、
イベントハンドラを追加することで、 signal イベントを開催する。
参照: : - Session.signal() - シグナルイベント - 信号 イベント