Publisher オブジェクトは、 公開されたストリームの制御を行うための仕組みを提供します。 OT.initPublisher() メソッド Publisher オブジェクトを作成します。

以下のコードは、セッションのインスタンスを作成し、 セッションへの接続時にオーディオ・ビデオストリームを配信します:

 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 that has been assigned the moderator 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 {
     // This example assumes that a DOM element with the ID 'publisherElement' exists
     var publisherProperties = {width: 400, height:300, name:"Bob's stream"};
     publisher = OT.initPublisher('publisherElement', publisherProperties);
     session.publish(publisher);
   }
 });

この例では、Publisher オブジェクトを作成し、その動画を ID が の DOM 要素に追加します publisherElement を呼び出すことで OT.initPublisher() メソッド。その後、 を呼び出すことで、セッションにストリームをパブリッシュします。 publish() Session オブジェクトのメソッド。

プロパティ

名称 タイプ 説明
accessAllowed ブーリアン ユーザーがカメラおよびマイクへのアクセスを許可しているかどうか。Publisher オブジェクトは、 accessAllowed ユーザーがアクセス権を許可した際のイベント。Publisher オブジェクトは、 accessDenied ユーザーがアクセスを拒否した場合のイベント。
element 要素 Publisher を含む HTML DOM 要素。(注: を設定する。 insertDefaultUI オプションで false の呼び出しにおいて OT.initPublisherその element プロパティが未定義です。)
id ストリング パブリッシャーのDOM ID。
stream ストリーム について ストリーム パブリッシャーのストリームに対応するオブジェクト。
session セッション について セッション その出版社が所属する。

参照: : - OT.initPublisher - Session.publish()

方法

名称 説明
addEventListener(type, listener, context) 非推奨です。
applyAudioFilter(audioFilter) → {Promise} パブリッシャーに対してオーディオフィルターを適用します。
applyVideoFilter(videoFilter) → {Promise} パブリッシャーに対して動画フィルターを適用します。
clearAudioFilter() → {Promise} パブリッシャーに適用されているオーディオフィルターを解除します。
clearVideoFilter() → {Promise} パブリッシャーに適用されているビデオフィルターを解除します。
cycleVideo() → {Promise} パブリッシャーが使用しているビデオ入力ソースを、利用可能なデバイスのリストにある次のデバイスに切り替えます。
destroy() → {Publisher} Publisher オブジェクトを削除し、HTML DOM から取り除きます。
getAudioFilter() → {Object} パブリッシャーで使用されているオーディオフィルターを返します(オーディオフィルターがない場合はnullを返します)。
getAudioSource() → {MediaStreamTrack} パブリッシャーのオーディオ入力ソースとして使用される MediaStreamTrack オブジェクトを返します。
getImgData() → {String} Publisherの動画を表すPNGデータのBase64エンコードされた文字列を返します。
getMaxVideoBitrate() → {Integer} パブリッシャーに設定されたカスタム最大ビットレートを返します。
getRtcStatsReport() → {Promise} 成功した場合、公開されたストリームの RTCStatsReport プロパティを含むオブジェクトの配列で解決される Promise を返します。
getStats(completionHandler) → {Promise.<PublisherStatsArr>} パブリッシャーのストリーム品質に関する詳細情報を返します。これには以下が含まれます。 - 失われたオーディオおよびビデオパケットの総数 - 送信されたオーディオおよびビデオパケットの総数 - 送信されたオーディオおよびビデオバイトの総数 - 現在の平均ビデオフレームレート これらの統計情報を使用して、パブリッシャーのオーディオ・ビデオストリームの品質を評価できます。
getStyle() → {Object} Publisher の現在のユーザー インターフェイス コントロールを定義するプロパティを持つオブジェクトを返します。
`getTargetScalabilityMode() → {String undefined}` を通じて明示的に設定されたターゲットのスケーラビリティモードを返します。 発行元。
getVideoBitratePreset() → {String} パブリッシャーのビットレートプリセットを返します。
getVideoContentHint() → {String} ビデオトラックのコンテンツヒントを返します。
getVideoFilter() → {Object} パブリッシャーによって適用されたビデオフィルターを返します。
getVideoSource() → {VideoSource} パブリッシャーの現在の動画ソースを定義するプロパティを含むオブジェクトを返します。
off(type, handler, context) → {Object} 1つまたは複数のイベントハンドラを削除します。
on(type, handler, context) → {EventDispatcher} 1つ以上のイベントに対するイベントハンドラ関数を追加します。
once(type, handler, context) → {Object} 1つ以上のイベントに対するイベントハンドラ関数を追加します。
publishAudio(value) → {Publisher} 以下の条件を満たした場合、オーディオの配信を開始します(現在配信されていない場合)。 valuetrue; が実行されると、オーディオの配信(現在配信中の場合)が停止されます。 valuefalse.
publishCaptions(value) → {Promise.<void>} 以下の条件が満たされた時点で、キャプションの公開を開始します(現在公開されていない場合)。 valuetrue; が実行されると、(現在キャプションの配信が行われている場合は)その配信を停止します。 valuefalse.
publishVideo(value, callback) → {Publisher} そのパブリッシャーの動画をオンまたはオフに切り替えます。
removeEventListener(type, listener, context) 非推奨です。
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} パブリッシャーのオーディオトラックに対して MediaProcessorConnector を設定します。
setAudioSource(audioSource) → {Promise} パブリッシャーが使用するオーディオ入力ソースを切り替えます。
setMaxVideoBitrate(bitrateBps) パブリッシャーに対して、カスタムの上限動画ビットレートを設定します。
setPreferredFrameRate(frameRate) → {Promise} 推奨される動画のフレームレートを設定します。
setPreferredResolution(preferredResolution) → {Promise} 推奨される動画解像度を設定します。
setStyle(style, value) → {Publisher} パブリッシャーのユーザーインターフェースコントロールの外観を定義するプロパティを設定します。
setTargetScalabilityMode(scalabilityMode) このパブリッシャーのターゲットスケーラビリティモード(SVC - スケーラブル・ビデオ・コーディング)を設定します。
setVideoBitratePreset(preset) パブリッシャーの最大ビデオビットレートを、次のプリセットのいずれか(「default」、「bw_saver」、または「extra_bw_saver」)に設定します。
setVideoContentHint(videoContentHint) → {Promise.<void>} パブリッシャーのストリームのビデオトラックに対するコンテンツヒントを設定します。
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} パブリッシャーのビデオトラックに対して MediaProcessorConnector を設定します。
setVideoSource(videoSourceId) → {Promise} このメソッドは、カメラを使用しているパブリッシャーの動画ソースを設定します。
videoHeight() → {Number} ローカルから読み込まれたパブリッシャーのローカル動画の高さを、ピクセル単位で返します。 <video> 要素である。
videoWidth() → {Number} ローカルから読み込まれたパブリッシャーのローカル動画の幅を、ピクセル単位で返します。 <video> 要素である。

addEventListener(type, listener, context)

パラメータ:
名称 タイプ 説明
type ストリング イベントの種類を識別する文字列。
listener 機能 オブジェクトがイベントをディスパッチする際に呼び出される関数。
context 目的 (オプション)の値を定義します。 this イベントハンドラ関数内で。

非推奨 — 使い方 on() または once() その代わりだ。

このメソッドは、特定のイベントのイベントリスナーとしてメソッドを登録します。

イベントに対してハンドラが登録されていない場合、そのイベントはローカルでは無視されます。 イベントリスナー関数が存在しない場合、そのイベントはローカルでは無視されます。

以下の場合、例外をスローします。 listener 名前が無効です。

参照: : - on() - once() - イベント

applyAudioFilter(audioFilter) →{Promise}

パブリッシャーにオーディオフィルターを適用します。現在のバージョンでは、高度なノイズ除去フィルターのみを適用できます。 パブリッシャーには、一度に1つ(または0つ)のフィルターしか適用できません。新しい フィルターを設定すると、以前に設定されていたフィルターはすべて削除されます。

このメソッドは、 Publisher.setAudioMediaProcessorConnector() メソッド。このメソッドは、 Publisher.setAudioMediaProccessorConnector(connector) エラーにより拒否されるプロミスを返し、その name エラーのプロパティ を次のように設定します 'OT_NOT_SUPPORTED'. コネクタは、以下を呼び出すことで削除できます。 Publisher.setAudioMediaProccessorConnector(null).

注: オーディオフィルターは、Chrome、Electron、Opera、Edge、Samsung Internet、 およびAndroid版WebViewの最新バージョンでのみサポートされています。 その他の(Chromiumベースではない)ブラウザやiOSではサポートされていません。クライアントが この機能をサポートしているかどうかは、 OT.hasMediaProcessorSupport('audio') メソッドを使用する。

重要だ: オーディオフィルターには、適切なプロセッサのサポートが必要です。 サポートされているブラウザであっても、バックグラウンド プロセスによって利用可能な処理リソースが制限されている場合、トランスフォーマーの動作が不安定になることがあります。詳しくは お客様のご要望.

以下の条件下では、このメソッドを呼び出すとエラーが発生します(メソッドによって返されるPromiseがrejectされます)。 具体的には:

  • お使いのブラウザはこのメソッドに対応していません。
  • カスタムフィルターは、すでに Publisher.setAudioMediaProcessorConnector() メソッドを使用する。
  • 変換フィルターの適用中にエラーが発生しました。

また、以下の設定を行うことで、初期のオーディオフィルターを設定することもできます。 audioFilter オプション 呼び出し時に OT.initPublisher().

パラメータ:
名称 タイプ 説明
audioFilter 目的 適用するオーディオフィルタを定義するオブジェクト。以下のフィルタがサポートされています: - 高度なノイズ抑制フィルター - を設定する。 type オブジェクトのプロパティを "advancedNoiseSuppression".

参照: : - OT.hasMediaProcessorSupport('audio') - Publisher.getAudioFilter() - Publisher.clearAudioFilter()

リターンズ

操作が正常に完了した際に解決するプロミスです。 エラーが発生した場合は、プロミスは拒否され、新しいビデオフィルターは設定されません。

applyVideoFilter(videoFilter) →{Promise}

パブリッシャーに動画フィルターを適用します。背景ぼかしフィルターを適用することができます。 パブリッシャーには、一度に1つ(または0つ)のフィルターしか適用できません。新しい フィルターを設定すると、以前に設定されていたフィルターは解除されます。

このメソッドは、 Publisher.setVideoMediaProcessorConnector() メソッド。このメソッドは、 Publisher.setVideoMediaProcessorConnector(connector) エラーにより拒否されるプロミスを返し、その name エラーのプロパティ を次のように設定します 'OT_NOT_SUPPORTED'. コネクタは、以下を呼び出すことで削除できます。 Publisher.setVideoMediaProcessorConnector(null).

注: 動画フィルターは、Chrome、Firefox、Electron、Opera、 Edge、Samsung Internet、Android版WebView、およびSafari(バージョン26以降)とiOS版WebView(バージョン26以降)の最新バージョンでのみサポートされています。 クライアントがこの機能をサポートしているかどうかは、 OT.hasMediaProcessorSupport('video') メソッドを使用する。

重要だ: 動画フィルターを使用するには、十分なプロセッサ性能が必要です。 対応しているブラウザであっても、バックグラウンド プロセスによって利用可能な処理リソースが制限されている場合、トランスフォーマーの動作が不安定になることがあります。詳しくは お客様のご要望.

以下の条件下では、このメソッドを呼び出すとエラーが発生します(メソッドによって返されるPromiseがrejectされます)。 具体的には:

  • お使いのブラウザはこのメソッドに対応していません。
  • 発行元は、サポートされている動画ソースを使用していません。( videoSource オプションの OT.initPublisher() メソッドは 次のように設定されました null, false、または "screen").
  • カスタムフィルターは、すでに Publisher.setVideoMediaProcessorConnector() メソッドを使用する。
  • ビデオ入力装置(カメラ)はありません。
  • ビデオ入力デバイスからビデオを取得する際にエラーが発生しました。
  • 変換フィルターの適用中にエラーが発生しました。

を設定することで、初期ビデオフィルターを設定することもできます。 videoFilter オプション 呼び出し時に OT.initPublisher().

パラメータ:
名称 タイプ 説明
videoFilter 目的 適用するビデオフィルタを定義するオブジェクト。以下のフィルタがサポートされています: - 背景ぼかしフィルター: - を設定する。 type オブジェクトのプロパティを "backgroundBlur". 背景ぼかしフィルターオブジェクトには、追加の blurStrength プロパティ。これはぼかしの半径を定義するもので、オプションです。これを次のいずれかに設定してください。 "low" または "high" (デフォルト)。 - 背景置換フィルター - を設定する。 type オブジェクトのプロパティを "backgroundReplacement". 背景置換フィルターオブジェクトには、追加の backgroundImgUrl このプロパティは、使用する背景画像のURLを指定します。また、画像BLOB(Base64エンコードされた画像データの文字列)も指定可能です。サポートされている画像形式は、BMP、PNG、JPEG、GIFです。 背景画像は、パブリッシャーの動画のサイズに合わせてリサイズされます。最適な結果を得るには、公開された動画と同じサイズ(または少なくとも同じアスペクト比)の画像を使用してください。 mirror ~するオプション false を呼び出すときに OT.initPublisher() パブリッシャーのページで、背景画像が正しい向き(反転していない状態)で表示されるようにする方法。

参照: : - OT.hasMediaProcessorSupport('video') - Publisher.getVideoFilter() - Publisher.clearVideoFilter()

リターンズ

操作が正常に完了した際に解決するプロミスです。 エラーが発生した場合は、プロミスは拒否され、新しいビデオフィルターは設定されません。

clearAudioFilter() →{Promise}

パブリッシャーに適用されているオーディオフィルターを解除します。

オーディオフィルターを停止できなかった場合、 エラーが発生します(メソッドによって返されたPromiseがrejectされます)。

参照: : - OT.hasMediaProcessorSupport('audio') - Publisher.applyAudioFilter() - Publisher.getAudioFilter()

リターンズ

操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスは拒否されます。

clearVideoFilter() →{Promise}

パブリッシャーに適用されているビデオフィルターを解除します。

ビデオフィルターを停止できなかった場合、 エラーが発生します(このメソッドが返すPromiseがrejectされます)。

参照: : - OT.hasMediaProcessorSupport('video') - Publisher.applyVideoFilter() - Publisher.getVideoFilter()

リターンズ

操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスは拒否されます。

cycleVideo() →{Promise}

パブリッシャーが使用しているビデオ入力ソースを、利用可能なデバイスのリスト内の 次のデバイスに切り替えます。

以下の条件では、エラーが発生します(メソッドによって返された Promise がリジェクトされます)。

  • ユーザーはビデオ入力装置へのアクセスを拒否した。
  • このパブリッシャーは、カメラの映像ソースを使用していません。(この videoSource オプションの OT.initPublisher() メソッドは 次のように設定されました null, false、MediaStreamTrack オブジェクト、または "screen").
  • ビデオ入力装置(カメラ)はありません。
  • ビデオ入力デバイスからビデオを取得する際にエラーが発生しました。

参照: : - Publisher.setVideoSource()

リターンズ

操作が正常に完了したときに解決されるプロミス。 このプロミスは、 deviceId プロパティには、使用するカメラのデバイスIDが設定される:

  publisher.cycleVideo().then(console.log);
  // Output: {deviceId: "967a86e52..."}

エラーが発生した場合、プロミスはrejectされます。

destroy() → {出版社}

Publisher オブジェクトを削除し、HTML DOM から取り除きます。

をディスパッチします。 destroyed DOM 要素が削除された際のイベント。

リターンズ

発行者。

getAudioFilter() →{Object}

パブリッシャーで使用されているオーディオフィルターを返します(オーディオフィルターがない場合はnullを返します)。

参照: : - OT.hasMediaProcessorSupport('audio') - Publisher.applyAudioFilter() - Publisher.clearAudioFilter()

リターンズ

出版社が使用しているオーディオフィルター。 以下を確認してください。 type オブジェクトのプロパティを確認して、オーディオフィルターの種類を確認します。 現在、高度なノイズ抑制フィルターのみがサポートされており、 type プロパティが "advancedNoiseSuppression".

getAudioSource() →{MediaStreamTrack}

パブリッシャーのオーディオ入力ソースとして使用される MediaStreamTrack オブジェクトを返します。 パブリッシャーにオーディオソースがない場合、このメソッドは null を返します。

参照: : - Publisher.setAudioSource()

リターンズ

パブリッシャーのオーディオソース(ない場合はnull)。

getImgData() →{String}

Publisherの動画を表すPNGデータのBase64エンコードされた文字列を返します。

この文字列を、次のように、画像ファイルの src パラメータに渡されるデータ URL スキームの値として使用できます:

 var imgData = publisher.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エンコードされた文字列。動画がない場合は空の文字列を返します。

getMaxVideoBitrate() →{Integer}

パブリッシャーに設定されたカスタム最大ビットレートを返します。

参照: : - Publisher.setMaxVideoBitrate() - パブリッシャー最大ビットレート

リターンズ

次のいずれかの値:0、または 5,000 以上 10,000,000 以下の整数値。

getRtcStatsReport() →{Promise}

成功した場合、公開されたストリームの RTCStatsReport プロパティを含むオブジェクトの配列で解決されるプロミス返します。(参照: RTCStatsReport.)

ルーティングされたセッション( Vonage Video API メディアルーター)、この配列には1つのオブジェクトが含まれており、Vonage Video API Media Routerに送信される単一の オーディオメディアストリームの統計情報を定義しています。中継セッションでは、この 配列には、公開されたストリームの各加入者に対応するオブジェクトが含まれます。配列内の各オブジェクトには、 rtcStatsReport RTCStatsReport オブジェクトであるプロパティ。

さらに、中継セッションにおけるパブリッシャーについては、配列内の各オブジェクトには 以下の2つのプロパティが含まれています:

  • connectionId (文字列) — クライアントの 接続の一意のID。これは id プロパティの connection の属性 接続が作成されました リモートクライアントに対してディスパッチされたSessionオブジェクトのイベント。
  • subscriberId (文字列) — サブスクライバーの一意の ID。これは 以下のものと一致します。 id 購読を行う クライアントのアプリ内のSubscriberオブジェクトのプロパティ。

ルーティングされたセッション内のパブリッシャーに対しては、これら2つのプロパティは未定義となります。

以下の条件に該当する場合、「約束」は却下されます:

  • このブラウザはこのメソッドをサポートしていません(たとえば、Chrome バージョン 57 以前では、 このメソッドがサポートされていません)。 RTCPeerConnection.getStats() (標準)。
  • について PeerConnection 「Publisher」が接続されていないためです。

参照: : - Subscriber.getRtcStatsReport()

リターンズ

操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスは拒否されます。

getStats(completionHandler) →{Promise.<PublisherStatsArr>}

パブリッシャーのストリーム品質に関する詳細情報を返します。これには以下が含まれます:

  • 失われたオーディオおよびビデオパケットの総数
  • 送信された音声および動画パケットの総数
  • 送信された音声および動画のバイト数の合計
  • 現在の平均ビデオフレームレート

これらの統計データを利用して、配信元の音声・映像ストリームの品質を評価することができます。

パラメータ:
名称 タイプ 説明
completionHandler 機能 (任意)以下のパラメータを受け取る関数: - error (エラー) — メソッドが正常に完了した場合、この値は未定義となります。パブリッシャーがセッションに接続されていない場合、またはオーディオやビデオを配信していない場合は、エラーが発生します。 - statsArray (配列) — パブリッシャーの現在のオーディオ・ビデオ統計情報を定義するオブジェクトの配列。ルーティングされたセッション( Vonage Video API メディアルーター)、この配列には1つのオブジェクトが含まれており、Vonage Video API Media Routerに送信される単一のオーディオメディアストリームの統計情報を定義しています。中継セッションでは、この配列には公開されたストリームの各加入者に対応するオブジェクトが含まれます。この配列内の各オブジェクトには、 stats 以下のプロパティを含むプロパティ: - audio.bytesSent (数値) — 加入者(またはVonage Video APIメディアルーター)に送信されたオーディオバイトの合計数 - audio.packetsLost (数値) — 加入者(またはVonage Video APIメディアルーター)に到達しなかったオーディオパケットの総数 - audio.packetsSent (数値) — 加入者(またはVonage Video APIメディアルーター)に送信されたオーディオパケットの総数 - timestamp (数値) — これらの統計情報が収集された時点のタイムスタンプ(Unixエポックからの経過時間、ミリ秒単位) - video.bytesSent (数値) — 加入者(またはVonage Video APIメディアルーター)に送信された動画の総バイト数 - video.packetsLost (数値) — 加入者(またはVonage Video APIメディアルーター)に到達しなかったビデオパケットの総数 - video.packetsSent (数) — 加入者に送信されたビデオパケットの総数 - video.frameRate (数値) — 現在の動画の平均フレームレート。このプロパティは非推奨となっており、将来的に削除される予定です。代わりに、 encodedFrameRate 各レイヤー内のプロパティ。 - video.layers (配列) — アクティブなビデオエンコーディングレイヤーのリストで、解像度の高い順に並んでいます。各レイヤーオブジェクトには以下が含まれます: - width (数値) — このレイヤーの動画解像度の幅(ピクセル単位) - height (数値) — このレイヤーの動画解像度(ピクセル単位) - encodedFrameRate (数値) — このレイヤーのフレームレート(1秒あたりのフレーム数) - bitrate (数値) — このレイヤーで使用されるビットレート(ビット/秒) - totalBitrate (数値) — このレイヤーで使用される総ビットレート(ビット/秒)。これには、RTPヘッダー、パディング、およびペイロードが含まれます - scalabilityMode (数値) — スケーラビリティの設定を記述する文字列(例: "L1T3" (空間レイヤー1つと時間レイヤー3つ)。これは、同時配信(simulcast)とSVCのどちらが使用されているかを反映している - codec (番号) — このレイヤーで使用されるコーデック - qualityLimitationReason (数値) — (任意) 配信者の動画画質が低下した可能性のある理由を示す文字列。取り得る値:- "bandwidth" — ネットワーク帯域幅の不足による品質の低下 - "cpu" — クライアント端末のCPUの制限に起因する品質の低下 - "other" — その他の不特定の理由 - transportStats (オブジェクト) — このプロパティは非推奨となっており、将来的に削除される予定です。代わりに、以下を使用してください。 mediaLink.transport. - mediaLink.transport.connectionEstimatedBandwidth (数値) — 接続の推定利用可能帯域幅(ビット/秒(bps)単位) - mediaLink.transport.networkCondition (文字列) — 現在のネットワーク状態。取り得る値は以下の通りです: unknown, critical, warning, fair, good そして excellent. - mediaLink.transport.networkConditionReason (文字列) — ネットワークの状態に影響を与えている主な原因。取り得る値は以下の通りです: none, unknown, bandwidth そして packetLoss. さらに、中継セッションにおけるパブリッシャーについては、配列内の各オブジェクトには以下の2つのプロパティが含まれます: - connectionId (文字列) — クライアントの接続を一意に識別する ID で、 id プロパティの connection の属性 接続が作成されました リモートクライアントに対してディスパッチされたSessionオブジェクトのイベント。 - subscriberId (文字列) — サブスクライバーの一意のID。これは 以下のものと一致する id サブスクライバーオブジェクトのプロパティで、サブスクライブしているクライアントのアプリ内にあります。ルーティングされたセッション内のパブリッシャーについては、これら2つのプロパティは未定義となります。

参照: : - Subscriber.getStats() - Publisher.getRtcStatsReport()

リターンズ

getStyle() →{Object}

Publisher の現在のユーザーインターフェースコントロールを定義するプロパティを持つオブジェクトを返します。 このオブジェクトのプロパティを変更したり、このオブジェクトを setStyle() Publisher オブジェクトのメソッド。(詳細については、 setStyle() (このオブジェクトを特徴づけるスタイルを確認するには。)

参照: : - setStyle()

リターンズ

パブリッシャーのスタイルを定義するオブジェクト。

getTargetScalabilityMode() →{String|undefined}

を通じて明示的に設定されたターゲットのスケーラビリティモードを返します。 Publisher.setTargetScalabilityMode(). セッターに渡された最後の値を返すか、 undefined セッターが 一度も呼び出されていない場合。 これは、実際に適用されたモードではなく、ユーザーの意図を反映したものです(実際に適用されたモードは、 コーデック依存のフォールバックによって異なる場合があります)。

これはベータ版の機能です。

参照: : - Publisher.setTargetScalabilityMode()

リターンズ

呼び出し元によって設定された目標スケーラビリティモード、 または undefined 明示的に設定されていない場合。

getVideoBitratePreset() →{String}

パブリッシャーのビットレートプリセットを返します。

参照: : - Publisher.setVideoBitratePreset() - パブリッシャー最大ビットレート

リターンズ

次のいずれかの値:「custom」、「extra_bw_saver」、 「bw_saver」、または「default」

getVideoContentHint() →{String}

ビデオトラックのコンテンツヒントを返します。

参照: : - Publisher.setVideoContentHint()

リターンズ

以下のいずれかの値: "", "motion", "detailあるいは "text".

getVideoFilter() →{Object}

パブリッシャーによって適用されたビデオフィルターを返します。

参照: : - OT.hasMediaProcessorSupport('video') - Publisher.applyVideoFilter() - Publisher.clearVideoFilter()

リターンズ

パブリッシャーが使用するビデオ入力ソースに適用されているビデオフィルター。 以下を確認してください。 type オブジェクトのプロパティを確認すると、ビデオフィルターの種類がわかります。以下の フィルターがサポートされています:

  • 背景ぼかしフィルター - について type オブジェクトのプロパティ は、 "backgroundBlur". 背景ぼかし フィルターオブジェクトには、追加の blurStrength プロパティ。これは ぼかし半径を定義するもので、次のいずれかに設定されます。 "low" または "high".
  • 背景置換フィルター - について type オブジェクトの type プロパティは "backgroundReplacement". 背景置換フィルターオブジェクトには、追加の backgroundImgUrl プロパティ。これは、使用する背景画像のURLを指定します。

getVideoSource() →{VideoSource}

パブリッシャーの現在の 動画ソースを定義するプロパティを含むオブジェクトを返します。

参照: : - Publisher.setVideoSource() - OT.initPublisher()

リターンズ

return オブジェクトには、以下のプロパティがあります:

  • deviceId (文字列 | null) — デバイス ID。
  • type (文字列 | null) — これは、 「camera」(カメラを使用した動画の場合)、「screen」(画面共有による動画の場合)、 または「custom」(MediaStreamTrack をソースとする動画の場合)に設定されます。
  • track (MediaStreamTrack | null) — 動画の MediaStreamTrack。

該当しないプロパティはすべてnullに設定されます。

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() - once() - イベント

リターンズ

イベントを発生させたオブジェクト。

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 イベントハンドラ関数内で。

参照: : - off() - once() - イベント

リターンズ

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 イベントハンドラ関数内で。

参照: : - on() - off() - イベント

リターンズ

イベントを発生させたオブジェクト。

publishAudio(value) → {出版社}

(現在配信されていない場合)オーディオの配信を開始します 以下の条件が満たされたときに valuetrue; オーディオの配信を停止します (現在配信中の場合)、 valuefalse.

パラメータ:
名称 タイプ 説明
value ブーリアン 音声の公開を始めるかどうか(true)または(false).

参照: : - OT.initPublisher() - Stream.hasAudio - StreamPropertyChangedイベント

リターンズ

publishCaptions(value) →{Promise.<void>}

(現在公開されていない場合)キャプションの公開を開始します。 以下の条件が満たされたときに valuetrue; キャプションの公開を停止します (現在公開中の場合)、 valuefalse.

注: 発行元に音声ソースがない場合、キャプションは公開されません。

詳細は ライブ・キャプション 開発者ガイド

パラメータ:
名称 タイプ 説明
value ブーリアン キャプションの掲載を始めるかどうか(true)または(false).

参照: : - OT.initPublisher() - subscribeToCaptions() - isSubscribedToCaptions() - Stream.hasCaptions - StreamPropertyChangedイベント

リターンズ

publishVideo(value, callback) → {出版社}

パブリッシャーの動画の公開/非公開を切り替えます。これにより、動画が公開されます (現在公開されておらず、クライアントが接続されており、 かつパブリッシャーが公開中である場合)、 valuetrue; (現在配信中の場合)以下の条件を満たすと、動画の配信が停止されます。 valuefalse.

注: の挙動は publishVideo これは、 パブリッシャーが現在接続されており、配信中であるかどうかによって異なります:

  • 呼び出し publishVideo(true) パブリッシャーがセッションに接続されていない場合 パブリッシャーはローカルで動画をキャプチャしてレンダリングしますが、動画をストリーミングすることはありません。
  • 呼び出し publishVideo(false) パブリッシャーがセッションに接続されていない場合 パブリッシャーはローカルでの動画のキャプチャを停止します。動画はストリーミングされません。
  • 呼び出し publishVideo(true) パブリッシャーがセッションに接続されているものの、 現在パブリッシングを行っていない場合、ビデオはローカルでキャプチャおよびレンダリングされますが、ストリーミングは行われません。
  • 呼び出し publishVideo(false) パブリッシャーがセッションに接続されているものの、 現在パブリッシングを行っていない場合、パブリッシャーはローカルでの動画のキャプチャを停止します。動画はストリーミングされません。
  • 呼び出し publishVideo(true) パブリッシャーがセッションに接続されていると同時に 現在パブリッシングを行っている場合、パブリッシャーはローカルで動画をキャプチャしてレンダリングし、 動画をストリーミングします。
  • 呼び出し publishVideo(false) パブリッシャーがセッションに接続されている状態であり、 かつ現在配信を行っている場合、パブリッシャーは動画のキャプチャを停止し、空の動画フレームをストリーミングすることになります。
パラメータ:
名称 タイプ 説明
value ブーリアン 動画の公開を始めるかどうか(true)または(false).
callback 機能 (任意)引数として Error パラメータ。メソッドが正常に完了すると、この error パラメータが未定義です。パブリッシャーがメディアストリームを提供できるデバイスを持っていない場合、またはユーザーのメディア要求がサポートされていない場合、エラーが発生します。

参照: : - OT.initPublisher() - Stream.hasVideo - StreamPropertyChangedイベント

リターンズ

removeEventListener(type, listener, context)

パラメータ:
名称 タイプ 説明
type ストリング イベントの種類を識別する文字列。
listener 機能 削除するイベントリスナー関数。
context 目的 (任意)もし context, 指定されたすべてのイベントおよび、指定されたコンテキストを使用するイベントリスナーについて、イベントハンドラが削除されます。(コンテキストは、 addEventListener().)

非推奨 — 使い方 off() その代わりだ。

特定のイベントに対するイベントリスナーを解除します。

以下の場合、例外をスローします。 listener 名前が無効です。

参照: : - off() - イベント

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')

リターンズ

操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスが拒否され、コネクタは設定されません。

setAudioSource(audioSource) →{Promise}

パブリッシャーが使用するオーディオ入力ソースを切り替えます。以下の設定を行うことができます。 audioSource デバイスID(文字列)またはオーディオのMediaStreamTrackオブジェクト。

以下の条件では、エラーが発生します(メソッドによって返された Promise がリジェクトされます)。

  • お使いのブラウザはこのメソッドに対応していません。このメソッドは、 Internet Explorer および Chromium ベースではないバージョンの Edge(バージョン 79 より前のもの)ではサポートされていません。
  • パブリッシャーはオーディオソースを指定せずに起動されました。(The audioSource オプションの OT.initPublisher() メソッドは 次のように設定されました null または false).
  • ユーザーは、オーディオ入力デバイスへのアクセスを拒否しました。
  • オーディオ入力デバイスまたは MediaStreamTrack オブジェクトからのオーディオの取得中にエラーが発生しました。
  • について audioSource 値が文字列または MediaStreamTrack オブジェクトではありません。
  • について audioSource 「string」は、ブラウザで利用可能な有効なオーディオ入力デバイスではありません。
パラメータ:
名称 タイプ 説明
audioSource 目的 オーディオ入力デバイスのデバイス ID(文字列)、またはオーディオの MediaStreamTrack オブジェクト。

参照: : - Publisher.getAudioSource()

リターンズ

操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスは拒否されます。

setMaxVideoBitrate(bitrateBps)

パブリッシャー用のカスタム最大動画ビットレートを設定します。 この値は 5,000 から 10,000,000 の範囲で設定してください。 この値を 0 に設定すると、以前に設定されたカスタム ビットレートがすべて解除され、デフォルトの動作に戻ります。

最大ビットレートの設定は、 サポート対象のすべてのブラウザの最新バージョンで対応しています。

パラメータ:
名称 タイプ 説明
bitrateBps 整数 動画のビットレート値――5,000~10,000,000の間。カスタムビットレート設定を解除し、デフォルトの設定に戻すには、0に設定してください。

参照: : - Publisher.getMaxVideoBitrate() - Publisher.setVideoBitratePreset() - パブリッシャー最大ビットレート

setPreferredFrameRate(frameRate) →{Promise}

動画の推奨フレームレートを設定します。 この関数は、動画の公開に使用するフレームレートを設定します。 フレームレートは、1 以上の整数でなければなりません。 成功した場合、新しいフレームレートの制約が動画トラックに適用されます。

パラメータ:
名称 タイプ 説明
frameRate ナンバー 推奨される動画のフレームレート。
リターンズ

動画の制約が正常に適用されると解決されます。 それ以外の場合は、エラーが発生します。たとえば、パブリッシャーが動画を配信していない場合、 フレームレートが無効な場合、または制約の適用に失敗した場合などです。

setPreferredResolution(preferredResolution) →{Promise}

優先する動画解像度を設定します。 この関数は、動画パブリッシャーの優先解像度を設定します。 入力が、幅と高さのプロパティが正の整数であるオブジェクトであることを検証し、 その解像度が初期の公開解像度を超えないことを確認します。 成功した場合、新しい制約を動画トラックに適用します。

パラメータ:
名称 タイプ 説明
preferredResolution 目的 希望する解像度。プロパティ 名称 タイプ 説明 --- --- --- width ナンバー 推奨される動画の幅(ピクセル)。 height ナンバー 推奨される動画の高さ(ピクセル)。
リターンズ

動画の制約が正常に適用されると解決されます。 それ以外の場合は、エラーが発生します。たとえば、パブリッシャーが動画を公開していない場合、 寸法が無効な場合、または解像度が初期解像度を超えている場合などです。

setStyle(style, value) → {出版社}

パブリッシャーのユーザーインターフェースコントロールの外観を定義するプロパティを設定します。

このメソッドには、パラメータを1つ、または2つ渡すことができます。

1つのパラメータを渡すと、 style、これは次のような プロパティを持つオブジェクトです:

  • audioLevelDisplayMode (文字列) — オーディオレベル インジケーターの表示方法。指定可能な値は以下の通りです: "auto" (このインジケーターは、 動画が無効になっているときに表示されます)、 "off" (インジケーターが表示されない)、および "on" (このインジケーターは常に表示されます)。
  • archiveStatusDisplayMode (文字列) — アーカイブの ステータスインジケータの表示方法。指定可能な値は次のとおりです: "auto" (セッションの録画中は このインジケーターが表示されます)、 "off" (インジケーターは表示されません)。 アーカイブステータスの表示インジケーターを無効にすると、 に基づいて独自のユーザー インターフェース通知を表示することができます。 archiveStarted そして archiveStopped イベントがディスパッチされます。
  • backgroundImageURI (文字列) — 動画が表示されない場合に 背景画像として表示する画像の URI です。( を呼び出すと、動画が表示されない場合があります。 publishVideo(false) (Publisher オブジェクト上で)。http または https の URI を、PNG、JPEG、または非アニメーション GIF ファイルの保存先に指定できます。また、 data URIスキーマ(httpやhttpsの代わりに)を使用し、base64エンコードされた PNGデータを渡します。例えば、 Publisher.getImgData() メソッド(たとえば、次のように呼び出すことができます) myPublisher.setStyle("backgroundImageURI", myPublisher.getImgData())). URL または画像データが無効な場合、そのプロパティは無視されます(画像の設定は エラーを返さずに失敗します)。画像が指定されていない場合は現在の背景が削除され、 以前にイニシャルが設定されている場合はそれが表示されます。
  • buttonDisplayMode (文字列) — マイク コントロールの表示方法。指定可能な値は以下の通りです: "auto" (コントロールは、 ストリームが最初に表示されたとき、およびユーザーがディスプレイ上にマウスを合わせると表示されます)、 "off" (コントロールは表示されません)、および "on" (操作ボタンは常に表示されます)。
  • nameDisplayMode (文字列) — ストリーム名を表示するかどうか。 取り得る値は次のとおりです: "auto" (この名前は、ストリームが最初に 表示されたとき、およびユーザーがマウスカーソルをその表示の上に合わせたときに表示されます)、 "off" (名前は 表示されません)、そして "on" (名前は常に表示されます)。

たとえば、次のコードでは、メソッドに 1 つのパラメータを渡しています:

myPublisher.setStyle({nameDisplayMode: "off"});

2つのパラメータを渡すと、 style そして value、これらは 表示スタイルの1つのプロパティを定義するキーと値のペアです。たとえば、次の コードでは、メソッドに2つのパラメータ値を渡しています:

myPublisher.setStyle("nameDisplayMode", "off");

を呼び出す際に、初期設定を行うことができます。 Session.publish() または OT.initPublisher() メソッド。次の引数を渡します。 style …の一部としてのプロパティ properties メソッドのパラメータ。

OTオブジェクトは、 exception たとえメソッドに無効なスタイルを 渡した場合でも、 code ExceptionEvent オブジェクトのプロパティが 1011 に設定されています。

パラメータ:
名称 タイプ 説明
style 目的 スタイルを定義するプロパティを含むオブジェクト、または設定するこの単一のスタイルプロパティを定義する文字列のいずれか。
value ストリング に設定する値は、 style 渡されました。このパラメータの値を渡すのは、 style パラメータは文字列です。

参照: : - getStyle() - setStyle() - Session.publish() - OT.initPublisher()

リターンズ

Publisher オブジェクト

setTargetScalabilityMode(scalabilityMode)

このパブリッシャーのターゲットスケーラビリティモード(SVC - スケーラブル・ビデオ・コーディング)を設定します。

スケーラビリティモードは、WebRTC がエンコードする空間(解像度)および時間(フレームレート)の レイヤーの数を制御します。このモードは、Media Router のメディアパスに適用されます。

このメソッドはいつでも呼び出すことができます。メディアパスのネゴシエーションが 完了している必要はありません。メディアルーターのメディアパスが確立され次第、モードが適用されます。

メディアルーターのメディアパス上でSVC以外のコーデック(VP8、H.264)がネゴシエーションされた場合、最も近い適用可能な モードが使用されます。具体的には、空間レイヤーが強制的に1に設定され、時間次元は維持されます (例: L2T2L1T2 (VP8がネゴシエートされた場合)。

有効なモード:

  • L1T1, L1T2, L1T3, L2T1, L2T2, L2T3, L3T1, L3T2, L3T3

これはベータ版の機能です。

パラメータ:
名称 タイプ 説明
scalabilityMode ストリング ターゲットのスケーラビリティモード識別子(例: "L1T3", "L3T3").

参照: : - Publisher.getTargetScalabilityMode()

投球:

setVideoBitratePreset(preset)

パブリッシャーの最大ビデオビットレートを、 「default」、「bw_saver」、または「extra_bw_saver」のいずれかのプリセットに設定します。 詳細については、 パブリッシャー最大ビットレート 開発者ガイド

最大ビットレートの設定は、 サポート対象のすべてのブラウザの最新バージョンで対応しています。

パラメータ:
名称 タイプ 説明
preset ストリング 使用するプリセット:「default」、「bw_saver」、または「extra_bw_saver」のいずれか。

参照: : - Publisher.getVideoBitratePreset() - Publisher.setMaxVideoBitrate()

setVideoContentHint(videoContentHint) →{Promise.<void>}

パブリッシャーのストリームのビデオトラックに対するコンテンツヒントを設定します。これにより、ブラウザは コンテンツの種類により適したエンコードや処理方法を使用できるようになります。

この方法を使用して、動画コンテンツのヒットを動的に変更します。初期の動画コンテンツの ヒットを設定するには、 videoContentHint に渡しされたオプションの OT.initPublisher() メソッドを使用する。

Chrome 60 以降、Safari 12.1 以降、Edge 79 以降、Opera 47 以降、Samsung Internet の最新バージョン、Android 70 以降の WebView、 および iOS 12.2 以降の WebView は、動画コンテンツのヒントに対応しています。

パラメータ:
名称 タイプ 説明
videoContentHint ストリング この設定は、以下のいずれかの値に設定できます: - "" — ヒントは一切示されていません。 - "motion" — 動画が含まれており、動きが重要なトラックについては、そのように扱う必要があります。たとえば、動画を含む画面共有ストリームでは、この設定を使用することができます。 - "detail" — このトラックについては、動画の詳細が特に重要であるかのように扱う必要があります。たとえば、テキストコンテンツやペイント、線画などが含まれる画面共有の配信では、この設定を使用するとよいでしょう。 - "text" — このトラックについては、テキストの詳細が特に重要であるかのように扱う必要があります。たとえば、テキストコンテンツを含む画面共有の配信などで、この設定を使用することができます。

参照: : - Publisher.getVideoContentHint() - OT.initPublisher()

リターンズ

setVideoMediaProcessorConnector(mediaProcessorConnector) →{Promise}

パブリッシャーのビデオトラックに対して MediaProcessorConnector を設定します。 パブリッシャーには、ビデオトラックを1つしか設定できません。 メディアプロセッサーコネクター 一度に適用されます。新しい コネクタを設定すると、以前に設定されていたビデオコネクタは削除されます。

このメソッドは、 Publisher.applyVideoFilter() メソッド。このメソッドは、 Publisher.applyVideoFilter(filter) エラーにより拒否されたプロミスを、 name エラーセットの属性を 'OT_NOT_SUPPORTED'. 以下の関数を呼び出すことで、動画フィルターをクリアできます。 Publisher.clearVideoFilter().

注: MediaProcessors は、Chrome、Firefox、Electron、Opera、 Edge、Samsung Internet、Android の WebView、および Safari の最新バージョン(バージョン 26 以降)と iOS の WebView(バージョン 26 以降)でのみサポートされています。 クライアントがこの機能をサポートしているかどうかは、 OT.hasMediaProcessorSupport('video') メソッドを使用する。

重要だ: メディアプロセッサには、適切なプロセッサのサポートが必要です。 サポートされているブラウザであっても、バックグラウンド プロセスによって利用可能な処理リソースが制限されている場合、トランスフォーマーの動作が不安定になることがあります。詳しくは、以下を参照してください。 お客様のご要望.

以下の条件下では、このメソッドを呼び出すとエラーが発生します(メソッドによって返されるPromiseがrejectされます)。 具体的には:

  • ビデオ入力装置(カメラ)はありません。
  • ビデオフィルターは、すでに Publisher.applyVideoFilter() メソッドを使用する。
  • ビデオ入力デバイスからビデオを取得する際にエラーが発生しました。
  • MediaProcessorConnector から処理済みのトラックを取得する際にエラーが発生しました。

以下の引数を指定してこのメソッドを呼び出すことで、現在のコネクタをクリアできます。 null.

詳細は Vonage Media Processorライブラリの使用 開発者ガイド

パラメータ:
名称 タイプ 説明
mediaProcessorConnector メディアプロセッサーコネクター MediaProcessorConnector のインスタンスです。詳しくは、 Vonage Media Processor ライブラリのドキュメント.

参照: : - OT.hasMediaProcessorSupport('video')

リターンズ

操作が正常に完了した際に解決されるプロミスです。 エラーが発生した場合は、プロミスが拒否され、コネクタは設定されません。

setVideoSource(videoSourceId) →{Promise}

このメソッドは、カメラを使用しているパブリッシャーの動画ソースを設定します。 新しい動画ソースのデバイス ID を引数として渡してください。

以下はエラーになります:

  • もし videoSourceId パラメータが文字列 または有効な映像入力デバイスのデバイスIDでない場合、そのプロミス はエラーを伴って拒否され、 name プロパティ を 'OT_INVALID_VIDEO_SOURCE'.
  • パブリッシャーが現在カメラインプットを使用していない場合、そのプロミス は、以下のエラーを伴って拒否されます。 name プロパティ を 'OT_SET_VIDEO_SOURCE_FAILURE'.
パラメータ:
名称 タイプ 説明
videoSourceId ストリング ビデオ入力(カメラ)デバイスのデバイスID。

参照: : - OT.getDevices() - Publisher.getVideoSource() - Publisher.cycleVideo()

リターンズ

操作が 正常に完了した場合、値を持たずに解決するプロミスです。エラーが発生した場合は、プロミスは拒否されます。

videoHeight() →{Number}

パブリッシャーのローカル動画の高さを、ピクセル単位で返します。この値は local <video> 要素。これは、 stream.videoDimensions.height.

リターンズ

パブリッシャーのローカル動画の高さ(ピクセル単位)。

videoWidth() →{Number}

パブリッシャーのローカル動画の幅をピクセル単位で返します。この値は local <video> 要素。これは、 stream.videoDimensions.width

リターンズ

パブリッシャーのローカル動画の幅(ピクセル単位)。

イベント

アクセス許可

ユーザーが「許可」ボタンをクリックし、 アプリにカメラとマイクへのアクセス権を付与した際に送信されます。Publisherオブジェクトには accessAllowed ユーザーが カメラおよびマイクへのアクセスを許可したかどうかを示すプロパティ。

参照: : - イベント

アクセス拒否

ユーザーが「拒否」ボタンをクリックした際に送信され、 アプリがカメラやマイクにアクセスするのを防ぎます。

ユーザーが以前に権限を付与した後、その権限を取り消した場合にも、このイベントが発生します。

注: macOS 10.15 以降(Catalina)で画面共有ストリームを公開するには、 ユーザーは macOS の「システム環境設定」> 「セキュリティとプライバシー」>「プライバシー」>「画面録画」で、ブラウザに画面へのアクセスを許可する必要があります。そうしないと、 パブリッシャーは accessDenied イベントを開催する。

参照: : - イベント

accessDialogClosed

「許可/拒否」ボックスが閉じられたときに送信されます。(これは、 ユーザーがアプリにカメラやマイクへのアクセスを許可できるダイアログボックスです。)

参照: : - イベント

accessDialogOpened

「許可/拒否」ダイアログボックスが開かれたときに送信されます。(これは、 ユーザーがアプリに対してカメラやマイクへのアクセスを許可できるダイアログボックスです。)

参照: : - イベント

audioInputDeviceChanged

オーディオ入力デバイスが変更されたときに送信されます。

参照: : - イベント - AudioInputDeviceChangedEvent

オーディオレベル更新

パブリッシャーのオーディオレベルを示すために定期的にディスパッチされます。このイベントは、 ブラウザによっては、1秒あたり最大60回ディスパッチされます。この audioLevel このイベントの プロパティはオーディオレベルで、0 から 1.0 までの値をとります。詳しくは AudioLevelUpdatedEvent 詳細については こちらをご覧ください。

次の例では、パブリッシャーの音量を表示するメーター要素の値を調整しています。 なお、オーディオレベルは対数的に調整され、移動平均が 適用されている点に注意してください:

var movingAvg = null;
publisher.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('publisherMeter').value = logLevel;
});

この例では、音声専用パブリッシャーに表示される デフォルトのオーディオレベルインジケーターで使用されているアルゴリズムについて説明します。

参照: : - AudioLevelUpdatedEvent

破壊された

HTML DOM から Publisher 要素が削除されたときに発生します。このイベントが 発生した際、パブリッシャーに関連する HTML DOM 要素を調整または削除することができます。

mediaStopped

ストリームを配信しているユーザーが、1つまたはすべてのメディア タイプ(動画、音声、および/または画面)の共有を停止しました。これは、ユーザーが、パブリッシャーのメディアソースとして使用されているカメラや マイクを切断した場合に発生することがあります。 あるいは、ストリームの動画および音声ソースが MediaStreamTrack 要素であり、 トラックが停止または破棄された際に、ユーザーが を閉じた場合にも発生する可能性があります。

参照: : - MediaStoppedEvent

メディアストリーム利用可能

MediaStreamが利用可能になったときに送信されます。

参照: : - イベント

muteForced

モデレーターがこのクライアントの音声をミュートにしました。

参照: : - イベント - Session.forceMuteAll() - Session.forceMuteStream() - セッション内の ストリームの音声をミュートする

networkConditionChanged

パブリッシャーのネットワーク状態の変化が検出された際に送信されます。

このイベントは、 videoDisabled そして videoEnabled このイベントは、パブリッシャーのビデオトラックの状態の変化ではなく、ネットワークの 健全性の変化を報告するという点で、他のイベントとは異なります。Applicationsはこのイベントを利用して、 UIの更新、テレメトリの記録、適応型動作のトリガーなど、ネットワークの問題に対応することができます。

このイベントの特性は以下の通りです:

  • reason — イベントの原因を示します。現在は常に "networkConditionChanged"
  • statsContainer — 現在の統計情報の完全なスナップショットを含むオブジェクト。 その構造は、 getStats() 呼び出し。なお、中継セッション内のパブリッシャーについては、 stats オブジェクトには connectionId そして subscriberId, これは、パブリッシャーが各サブスクライバーに個別のストリームを送信し、統計情報がサブスクライバーごとに報告されるためです。これにより、 ユーザーは、どのサブスクライバーでネットワークの品質低下が発生しているかを特定することができます。中継セッションでは、 影響を受けたサブスクライバーに対応する統計情報のみがイベントに含まれます。

参照: : - イベント

streamCreated

パブリッシャーがセッションへのストリーミングを開始しました。

参照: : - ストリームイベント - Session.publish()

streamDestroyed

パブリッシャーは、そのセッションへのストリーミングを停止しました。デフォルトの動作では、 パブリッシャー・オブジェクトは HTML DOM から削除されます。パブリッシャー・オブジェクトは、 destroyed 要素がHTML DOMから削除されたときに発生するイベントです。もし preventDefault() イベントリスナー内でイベントオブジェクトの`method`を呼び出すと、デフォルトの 動作が阻止され、必要に応じてパブリッシャーを再利用するために保持したり、独自のコードを使用してクリーンアップしたり することができます。

参照: : - ストリームイベント

videoDimensionsChanged

発行者のローカルが <video> 要素は、寸法の 変更を検知します。パブリッシャーがアクティブにパブリッシングを行っている場合、これにより stream.videoDimensions プロパティ。ローカルの video 要素のサイズ変更を引き起こす可能性のある要因の例:

  • いつ stream.videoType に設定されている。 "screen" (画面共有) そして、ユーザーがキャプチャされたウィンドウのサイズを変更した場合。
  • モバイル端末から動画を公開している際に、ユーザーが端末を回転させると、 カメラの向きが変わってしまいます。
  • 出版社から電話がかかってきたとき Publisher#setPreferredResolution、 ターゲットのキャプチャ解像度を変更します。

このイベントオブジェクトには、 newValue プロパティと、ある oldValue プロパティ、 これはビデオの新しい寸法と古い寸法を表しています。それぞれには height プロパティと、および width 高さおよび幅を表すプロパティ(単位はピクセル)。

参照: : - VideoDimensionsChangedEvent

videoDisabled

パブリッシャーの動画が無効になっている場合に送信されます。

このイベントを送信する前に、パブリッシャーのストリーム品質が、 ビデオストリームが無効化される恐れがあるほど低くなった場合、パブリッシャーは 以下のイベントを送信します。 videoDisableWarning イベントを開催する。

接続状況が改善され、再び動画の再生が可能になった場合、Publisher オブジェクトは a videoEnabled イベントが発生すると、加入者は動画の受信を再開します。

デフォルトでは、Publisher では、 videoDisabled この理由によるイベントがディスパッチされ、 以下の場合にインジケーターが解除されます。 videoEnabled この理由によるイベントがディスパッチされます。 このアイコンの表示は、 videoDisabledDisplayMode ~とともに Publisher.setStyle() メソッドを使用するか、または videoDisabledDisplayMode style Publisher を OT.initPublisher() メソッドを使用する。

この音声のみのフォールバック機能は、 publisher プロパティ true その中では audioFallback オプションが に OT.initPublisher() パブリッシングクライアント用のメソッド。(参照: OT.initPublisher().)

参照: : - イベント - videoDisableWarning イベント - videoEnabled イベント

videoDisableWarning

パブリッシャーがストリームの品質が低下したと判断した場合に送信され、 さらに品質が低下した場合は動画が停止されます。品質がさらに低下した場合、 パブリッシャーは動画を停止し、 videoDisabled イベントを開催する。

デフォルトでは、このイベントが ディスパッチされた際(かつ動画が無効になっている場合)、パブリッシャーは「動画が無効」という警告インジケーターを表示します。このアイコンの表示は、 以下の関数を呼び出すことで制御できます。 setStyle() パブリッシャーのメソッドと 設定の videoDisabledDisplayMode プロパティ、あるいは videoDisabledDisplayMode を呼び出す際の OT.initPublisher() メソッドと、 style プロパティ の properties パラメータが必要だ。

参照: : - イベント - videoDisabled イベント - videoDisableWarningLifted イベント

videoDisableWarningLifted

パブリッシャーが、ストリームの品質が改善し、 動画の配信停止が差し迫ったリスクではなくなったと判断した際にディスパッチされます。このイベントは、 パブリッシャーオブジェクトが videoDisableWarning イベントを開催する。

参照: : - イベント - videoDisableWarning イベント - videoDisabled イベント

videoElementCreated

Publisherのvideo要素が作成されたときに発生します。このイベントのリスナーは、 以下の設定を行う際に追加してください。 insertDefaultUI オプションで false への呼び出しにおいて OT.initPublisher() メソッドを使用する。その element イベントオブジェクトのこのプロパティは、パブリッシャーの video 要素 (またはInternet Explorerでは object (動画を含む要素)。これを HTML DOM に追加して、動画を表示します。 insertDefaultUI ~するオプション falseその video (または object) 要素は DOM に自動的に挿入されません。

このイベントのリスナーを追加するのは、 insertDefaultUI ~するオプション false. まだ設定していない場合は insertDefaultUI ~するオプション false, を動かさないでください video (または object) 要素を HTML DOM から削除します。これにより、Publisher オブジェクトが破棄されます。

参照: : - VideoElementCreatedEvent

videoEnabled

以前に動画の配信が無効にされていた後、パブリッシャーが動画の配信を再開した際に このイベントが発信されます。

参照: : - イベント - videoDisabled イベント

videoQualityChanged

パブリッシャーが、解像度の低下や、帯域幅やCPUに起因する画質の 劣化など、動画の品質に有意な変化を検出した際に送信されます。

このイベントは、 videoDisabled そして videoEnabled パブリッシャーのイベントにおいて、 動画の品質に関連する変更が報告される。 videoDisabled そして videoEnabled これは単に、 加入者のビデオトラックが有効または無効になったこと(たとえば、ストリームプロパティの更新や オーディオフォールバックなどによる)を示すだけです。これに対し、このイベントは、品質低下の原因( CPUや帯域幅の制限など)に関する診断情報を提供し、ビデオが有効なままであってもトリガーされる場合があります。

このイベントの主な目的は、品質低下の原因を示すことです。原因が明示的に解像度の変更ではない場合でも、 たとえばCPUの制限の結果として、解像度 やビデオレイヤーが変更される可能性があります。 詳細な状況については、このイベントで提供される更新された統計情報を参照してください。 以前にアクティブだった画質低下の原因が解消されると、このイベントは再度トリガーされ、 "none" その理由として。

について reason このプロパティは、動画の画質が変化した理由を定義します。これは、 以下のいずれかの値に設定できます:

  • "bandwidth" — ネットワーク帯域幅の不足による品質の低下
  • "cpu" — クライアント端末のCPUの性能制限に起因する品質の低下
  • "other" — その他の理由(詳細不明)
  • "codecChange" — ビデオコーデックが変更されたことを示します
  • "resolutionChange" — これは、ビットレートの制約、エンコーダの適応、 カメラソースの変更(例:カメラの切り替えや入力解像度の変更)、あるいは設定の変更によって発生する可能性があり、 必ずしも画質の低下を意味するわけではありません
  • "none" — 以前有効だった品質低下の原因が解消されたとき

について statsContainer このプロパティは、現在の統計情報の完全なスナップショットを含むオブジェクトを定義し、 その構造は、 getStats() 呼び出し。なお、中継セッション内のパブリッシャーについては、 stats オブジェクトには connectionId そして subscriberId、これは パブリッシャーが各サブスクライバーに個別のストリームを送信し、統計情報がサブスクライバーごとに報告されるためです。これにより、ユーザーは どのサブスクライバーで品質の低下が発生しているかを特定することができます。リレーされたセッションでは、影響を受けたサブスクライバーに対応する統計情報のみが イベントに含まれます。

参照: : - イベント