このトピックでは、AOQ クライアント SDK for Electron の TypeScript API、イベント、およびデータ型について説明します。この SDK は macOS x64/arm64 および Windows x64 をサポートし、Node.js 16 以降が必要です。
aoq-electron-sdk (npm)。サポートプラットフォーム: macOS (x64 / arm64) および Windows x64。Node.js >= 16。API インデックス
エンジンのエントリーとライフサイクル
API | 説明 |
|---|---|
createAoqClientEngine | エンジンラッパーインスタンス (モジュールレベルの遅延初期化シングルトン) を取得します |
createEngine | ネイティブエンジンインスタンスを作成します |
destroy | エンジンインスタンスを削除します |
getVersion | SDK のバージョンを取得します |
connect | リレーサーバーに接続します |
disconnect | サーバーから切断します |
オーディオデバイス管理
API | 説明 |
|---|---|
startAudioCapture | オーディオキャプチャデバイス (マイク) を開きます |
stopAudioCapture | オーディオキャプチャデバイスを閉じます |
muteAudioCapture | オーディオキャプチャをミュートまたはミュート解除します |
startAudioPlayer | リモートオーディオを再生するためにオーディオレンダリングを開始します |
stopAudioPlayer | オーディオレンダリングを停止します |
pauseAudioPlayer | オーディオレンダリングを一時停止します (フェードアウト対応) |
resumeAudioPlayer | オーディオレンダリングを再開します (フェードイン対応) |
interruptAudioPlayer | 現在のオーディオセッションを中断します |
オーディオコーデック設定
API | 説明 |
|---|---|
setAudioEncoderConfig | オーディオエンコーディングパラメーターを設定します |
setAudioDecoderConfig | オーディオデコーディングパラメーターを設定します |
ビデオデバイス管理
API | 説明 |
|---|---|
startVideoCapture | ビデオキャプチャデバイス (カメラ) を開きます |
stopVideoCapture | ビデオキャプチャデバイスを閉じます |
ビデオコーデックと外部入力
API | 説明 |
|---|---|
setVideoEncoderConfig | ビデオエンコーディングパラメーターを設定します |
setVideoDecoderConfig | ビデオデコーディングパラメーターを設定します |
pushExternalVideoCapturedFrame | 外部でキャプチャされたビデオフレームをプッシュします |
pushExternalVideoEncodedFrame | 外部でエンコードされたビデオフレームをプッシュします |
メディアストリーム制御
API | 説明 |
|---|---|
enableSendMediaStream | ローカルメディアストリームの送信を有効または無効にします |
オーディオファイルの再生
API | 説明 |
|---|---|
startAudioFile | ローカルオーディオファイルのパブリッシングストリームへの再生を開始します |
stopAudioFile | オーディオファイルの再生を停止します |
pauseAudioFile | オーディオファイルの再生を一時停止します |
resumeAudioFile | オーディオファイルの再生を再開します |
getAudioFileDuration | オーディオファイルの総再生時間を照会します |
getAudioFileCurrentPosition | オーディオファイルの現在の再生位置を照会します |
setAudioFilePositionMillis | オーディオファイルの再生位置を設定します (シーク) |
setAudioFileVolume | オーディオファイルのボリュームを設定します |
getAudioFileVolume | オーディオファイルの現在のボリュームを照会します |
外部オーディオストリーム
API | 説明 |
|---|---|
addAudioExternalStream | 外部オーディオストリームを追加します |
removeAudioExternalStream | 外部オーディオストリームを削除します |
pushAudioExternalStreamData | 外部オーディオの PCM データを供給します |
setAudioExternalStreamVolume | 外部オーディオストリームのボリュームを設定します |
getAudioExternalStreamVolume | 外部オーディオストリームのボリュームを照会します |
clearAudioExternalStreamBuffer | 外部オーディオストリームのバッファーをクリアします |
リアルタイムメッセージング
API | 説明 |
|---|---|
sendDataMsg | リアルタイムデータメッセージを送信します |
オーディオフレームコールバック
API | 説明 |
|---|---|
setAudioFrameObserver | オーディオフレームデータオブザーバーを有効または無効にします |
enableAudioFrameObserver | 指定された位置でのオーディオフレームコールバックを有効または無効にします |
ローカルボリューム表示
API | 説明 |
|---|---|
enableLocalAudioVolumeIndication | ローカルキャプチャボリューム表示コールバックを有効または無効にします |
ビデオフレームコールバック
API | 説明 |
|---|---|
setVideoFrameObserver | ビデオフレームデータオブザーバーを有効または無効にします |
enableVideoFrameObserver | 指定された位置でのビデオフレームコールバックを有効または無効にします |
ビデオレンダリング (YUVCanvasRenderer)
API | 説明 |
|---|---|
bind | canvas 要素をバインドします |
unbind | バインドを解除し、イメージをクリアします |
bound | 現在バインディングが確立されているかどうかを照会します |
drawFrame | I420 ビデオデータの 1 フレームを描画します |
エンジンイベント (IAoqEngineEvents)
イベント | 説明 |
|---|---|
onError | エンジンエラーコールバック |
onWarning | エンジン警告コールバック |
onConnectionStatusChange | 接続ステータス変更コールバック |
onStats | エンジン統計コールバック |
onAudioDeviceStateChanged | オーディオデバイス操作ステータス変更コールバック |
onAudioDeviceRouteChanged | オーディオ出力ルート変更コールバック |
onAudioFileState | オーディオファイル再生ステータスコールバック |
onLocalAudioVolumeIndication | ローカルキャプチャボリューム表示コールバック |
onVideoDeviceStateChanged | ビデオデバイス操作ステータス変更コールバック |
onDataMsg | 受信したリアルタイムデータメッセージのコールバック |
onCapturedAudioFrame | 生のキャプチャされたオーディオデータのコールバック |
onProcessCapturedAudioFrame | 3A 処理後のオーディオデータのコールバック |
onPublishAudioFrame | パブリッシングオーディオデータのコールバック |
onPlaybackAudioFrame | 再生オーディオデータのコールバック |
onCapturedVideoFrame | キャプチャ後のローカルの生のビデオデータのコールバック |
onPreEncodeVideoFrame | エンコード前のローカルの生のビデオデータのコールバック |
onRemoteVideoFrame | デコード後、レンダリング前のリモートビデオデータのコールバック |
API の詳細
エンジンのエントリーとライフサイクル
createAoqClientEngine
エンジンラッパーインスタンスを取得します。これはモジュールレベルの遅延初期化シングルトンです。このメソッドを再度呼び出すと、同じインスタンスが返されます。これはネイティブエンジンのシングルトンセマンティクスと一致します。また、これはパッケージのデフォルトエクスポートでもあります。
IAoqClientEngine エンジンインスタンス。このメソッドは JS ラッパーレイヤーとネイティブブリッジのみを作成することに注意してください。実際にエンジンを作成するには、createEngine() も呼び出す必要があります。
createEngine
ネイティブエンジンインスタンスを作成します。エンジンはグローバルシングルトンであるため、このメソッドを再度呼び出すと直接成功が返されます。
パラメーター | 型 | 説明 |
|---|---|---|
config | AoqCreateConfig | エンジン作成設定 |
0。 -1 は、作成が失敗したか、パラメーターが有効な JSON ではないことを示します。
createEngine() は現在の JS スレッドの libuv ループに 16 ms の Win32 メッセージポンプをアタッチし (カメラキャプチャに必要)、destroy() で停止します。したがって、createEngine() の後に JS スレッドを長時間同期的にブロックしないでください。destroy
エンジンインスタンスを削除し、すべてのリソースを解放します。
0 は成功を示し、非 0 は失敗を示します。エンジンが作成されていない場合、0 が返されます。
getVersion
現在の SDK バージョンを取得します。最初に createEngine() を呼び出す必要はありません。
connect
リレーサーバーに接続します。アプリケーションサーバーは、使用中のプロトコルに基づいて一時的な AOQ 接続パラメーターを取得し、クライアントに送信します。詳細については、「トークン認証」をご参照ください。
パラメーター | 型 | 説明 |
|---|---|---|
config | AoqConnectConfig | 接続設定。トークン、SID、リレーアクセスポイントのリスト、パブリッシングおよびサブスクライブトラックのリストが含まれます |
0 は、呼び出しがディスパッチされ、非同期で実行されることを示します。非 0 は、パラメーター検証が失敗したことを示します。接続結果は onConnectionStatusChange イベントによって通知されます。
disconnect
サーバーから切断し、接続に関連するリソースを解放します。
0 は、呼び出しがディスパッチされ、非同期で実行されることを示します。非 0 は失敗を示します。
オーディオデバイス管理
startAudioCapture
Info.plist ファイルに NSMicrophoneUsageDescription を宣言する必要があります。
stopAudioCapture
muteAudioCapture
mute=true はミュート、false はミュート解除です。
startAudioPlayer
stopAudioPlayer / pauseAudioPlayer / resumeAudioPlayer
fadeMs:フェードアウトまたはフェードインの持続時間 (ミリ秒)。0 は即時実行を示します。
interruptAudioPlayer
パラメーター | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
fadeMs | number | フェードアウトの持続時間 (ミリ秒) |
オーディオコーデック設定
connect() の前に呼び出すことを推奨します。Opus (AoqEncoderTypeAudioOpus) を使用するには、PluginOpus プラグインが SDK に組み込まれているか、パッケージと共に配布されている必要があります。
ビデオデバイス管理
Info.plist に NSCameraUsageDescription を宣言する必要があります。config.isExternal=true の場合、カメラは開かれず、フレームは pushExternalVideoCapturedFrame によって配信されます。
setLocalView / setRemoteView / switchCamera は提供されていません。プレビューには、フレームオブザーバーと YUVCanvasRenderer を使用してください (2.13 をご参照ください)。ビデオコーデックと外部入力
パラメーター | 型 | 説明 |
|---|---|---|
meta | AoqExternalVideoFrameMeta / AoqExternalVideoEncodedFrameMeta | フレームメタデータ (ディメンション、フォーマット、タイムスタンプ) |
buffer | Uint8Array | フレームデータ (ピクセルデータまたはエンコード済みデータ) |
pushExternalVideoCapturedFrameはstartVideoCapture({ isExternal: true })の後にのみ消費されます。外部キャプチャが有効でない場合は211を、バッファーがいっぱいの場合は210を返します。AoqVideoPixelFormatI420とパック形式 (NV12 / NV21 / BGRA / RGBA) がサポートされています。I420 の場合、bufferはコンパクトレイアウト (stride = width) を使用し、Y/U/V プレーンを順番に連結する必要があります。pushExternalVideoEncodedFrameは、最初にsetVideoEncoderConfig({ isExternal: true })を必要とします。有効でない場合は212を返します。現在、JPEG のみがサポートされています。meta.timeStampが0の場合、SDK はローカル時間でそれを埋めます。
メディアストリーム制御
enableSendMediaStream(trackType, false) を呼び出し、onConnectionStatusChange が AoqConnectionStatusConnected をレポートした後にのみ送信を有効にすることを推奨します。
オーディオファイルの再生
パラメーター | 型 | 説明 |
|---|---|---|
config | AoqAudioFileMixConfig | ファイルミキシング設定。 |
fileId | string | ファイル識別子。呼び出し元によって定義されます。後続の API 呼び出しは、これを使用してファイルを特定します。 |
positionMs | number | ターゲットの再生位置 (ミリ秒) |
type | AoqAudioStreamDirection | パブリッシングボリュームまたはローカル再生ボリューム |
volume | number | ボリューム。有効な値: 0 から 100。 |
getAudioFileDuration/getAudioFileCurrentPositionはミリ秒数を返します。getAudioFileVolumeは現在のボリュームを返します。- 上記のゲッターは、エンジンが作成されていない場合、
-1を返します。
onAudioFileState イベントを通じて報告されます。
外部オーディオストリーム
パラメーター | 型 | 説明 |
|---|---|---|
config | AoqAudioExternalStreamConfig | 外部オーディオストリーム設定。 |
streamId | string | ストリーム識別子。呼び出し元によって定義されます |
meta | AoqAudioExternalFrameMeta | PCM フレームメタデータ。 |
buffer | Uint8Array | PCM データ |
fadeoutMs | number | バッファーがクリアされるときのフェードアウト時間 (ミリ秒) |
pushAudioExternalStreamDataは、バッファリングされた期間がmaxBufferDurationを超えると110(外部オーディオバッファーがいっぱい) を返します。getAudioExternalStreamVolumeは現在のボリュームを返します。エンジンが作成されていない場合は-1を返します。clearAudioExternalStreamBufferはネイティブ側で戻り値がなく、正常な呼び出しでは常に0を返します。
リアルタイムメッセージング
string を渡すと、送信前に内部で UTF-8 にエンコードされて Buffer になります。ピアからのメッセージは onDataMsg イベントコールバックを通じて報告されます。
オーディオフレームコールバック
パラメーター | 型 | 説明 |
|---|---|---|
enable | boolean |
|
params | AoqAudioObserverParams | コールバックの位置、オン/オフ状態、コールバック形式を指定します |
setAudioFrameObserver(true) を呼び出してオブザーバーを登録します。次に、必要な各位置に対して enableAudioFrameObserver を呼び出します。データは対応するイベントを通じて配信されます。
ReadOnly に固定されています)。ローカルボリューム表示
config.interval <= 0 の場合、コールバックは無効になります。有効にすると、onLocalAudioVolumeIndication は config.interval で指定された間隔でトリガーされます。ボリュームデータを取得するには、このメソッドを startAudioCapture() の後に呼び出す必要があります。
ビデオフレームコールバック
パラメーター | 型 | 説明 |
|---|---|---|
enable | boolean |
|
params | AoqVideoObserverParams | コールバックの位置、オン/オフ状態、ピクセルフォーマット、アライメントポリシーを指定します |
AoqVideoFrameEvent として onCapturedVideoFrame / onPreEncodeVideoFrame / onRemoteVideoFrame を通じて配信されます。I420 の場合、buffer はストライドに基づいて連結された Y/U/V プレーンです。他のパック形式は元のデータとして渡されます。同様に読み取り専用モードのみがサポートされています。
ビデオレンダリング (YUVCanvasRenderer)
SDK に組み込まれたソフトウェアレンダラーです。モバイルプラットフォームでの setLocalView / setRemoteView のプレビュー責任を担います。
API | 説明 |
|---|---|
bind | canvas をバインドします (再度バインドするとシンクが置き換えられます) |
unbind | バインドを解除し、イメージをクリアします |
bound | バインディングが確立されているかどうかを指定します |
drawFrame | 1 フレームを描画します。I420 のみがサポートされており、非 I420 形式、またはサイズやバッファー長が不十分な場合は、メソッドは何もせずに戻ります |
object-fit プロパティを使用して canvas を制御します。
エンジンイベント (IAoqEngineEvents)
エンジンは EventEmitter<IAoqEngineEvents> を継承します。イベントは SDK からのすべての非同期通知の統一された出口であり、ネイティブの AoqEngineEventListener コールバックと 1 対 1 で対応します。関心のないイベントを登録する必要はありません。
onError
code は AoqErrorCode の値に対応します (3.3 をご参照ください)。
onWarning
code は AoqWarningCode の値に対応します (3.3 をご参照ください)。
onConnectionStatusChange
onStats
パラメーター | 型 | 説明 |
|---|---|---|
stats | AoqStats | オーディオ、ビデオ、データメッセージのパブリッシングおよびサブスクライブ統計とネットワーク統計 |
onAudioDeviceStateChanged
onAudioDeviceRouteChanged
routeType は AoqAudioDeviceRouteType の値に対応します (3.4 をご参照ください)。
onAudioFileState
onLocalAudioVolumeIndication
enableLocalAudioVolumeIndication を呼び出します。
onVideoDeviceStateChanged
onDataMsg
data はネイティブ側でコピーされた Buffer であり、非同期で安全に保持できます。テキストメッセージの場合、Buffer.from(data).toString() を使用してデータを文字列に変換します。
オーディオフレームイベント
setAudioFrameObserver(true) と enableAudioFrameObserver を呼び出して有効にする必要があります。
ビデオフレームイベント
setVideoFrameObserver(true) と enableVideoFrameObserver を呼び出して有効にする必要があります。フレームイベントは読み取り専用です。コールバック内の buffer への変更は SDK に書き戻されません。
データ型と列挙型
すべての型はパッケージのルートからエクスポートされるため、import { ... } from 'aoq-electron-sdk' を直接使用できます。列挙型は TypeScript の enum 型であり、ランタイムで利用可能ですが、インターフェイス (interface) は型制約のみです。オプションとしてマークされたフィールドが指定されていない場合、表のデフォルト値が使用されます。
一般的な種類
AoqCreateConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
workDir | string | いいえ | "" | SDK の作業ディレクトリ (ログおよび一時ファイル用) |
enableDumpAudio | boolean | いいえ | false | オーディオデータを保存するかどうかを指定します (デバッグ用) |
extras | string | いいえ | "" | 拡張パラメーター (JSON 文字列) |
isBTScoMode フィールドはモバイル専用フィールドであり、Electron では提供されていません。AoqConnectConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
token | string | はい | - | 接続認証トークン |
sid | string | はい | - | セッション ID |
certFingerprint | string | いいえ | "" | サーバー証明書の指紋 |
workspaceIdHash | string | いいえ | なし | ワークスペース ID ハッシュ。空の文字列はパラメーターを渡さないことと同等です。 |
relayEndpoints | Array | はい | - | リレーアクセスポイントのリスト |
publishTracks | Array | はい | - | ローカルでパブリッシュされたトラックのリスト |
subscribeTracks | Array | はい | - | ローカルでサブスクライブされたトラックのリスト |
AoqRelayEndpoint
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
routeIndex | number | いいえ | -1 | ルートインデックス |
endpoint | string | はい | - | リレーサーバーのドメイン名または IP アドレス |
port | number | はい | - | リレーサーバーのポート |
AoqTrackParam
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
trackType | AoqTrackType | はい | - | トラックタイプ |
trackMode | AoqTrackMode | いいえ | AoqTrackModeSegment | ストリーミングモードまたは非ストリーミングモード。オーディオダウンリンクにのみ有効です。 |
統計タイプ
AoqStats
エンジン統計の概要。これは onStats を通じて定期的に報告されます。配列フィールドはデータがない場合は空の配列になり、networkStats はデータがない場合は配信されません。
フィールド | 型 | 説明 |
|---|---|---|
audioPublishStats | Array | オーディオのパブリッシング統計 |
videoPublishStats | Array | ビデオのパブリッシング統計 |
dataMsgPublishStats | Array | データメッセージのパブリッシング統計 |
audioSubscribeStats | Array | オーディオのサブスクライブ統計 |
videoSubscribeStats | Array | ビデオのサブスクライブ統計 |
dataMsgSubscribeStats | Array | データメッセージのサブスクライブ統計 |
networkStats | AoqNetworkStats | ネットワーク統計 |
AoqAudioPublishStats
フィールド | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
bitrate | number | ビットレート (bit/s) |
bytes | number | 累積送信バイト数 |
encodeVolume | number | パブリッシングストリームのエンコーディングボリューム |
AoqAudioSubscribeStats
フィールド | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
bitrate | number | ビットレート (bit/s) |
bytes | number | 累積受信バイト数 |
playVolume | number | 再生ボリューム |
AoqVideoPublishStats
フィールド | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
bitrate | number | ビットレート (bit/s) |
bytes | number | 累積送信バイト数 |
encodeFps | number | エンコーディングフレームレート |
AoqVideoSubscribeStats
フィールド | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
bitrate | number | ビットレート (bit/s) |
bytes | number | 累積受信バイト数 |
decodeFps | number | デコーディングフレームレート |
renderFps | number | レンダリングフレームレート |
AoqDataMsgPublishStats / AoqDataMsgSubscribeStats
フィールド | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
bitrate | number | ビットレート (bit/s) |
bytes | number | 累積送受信バイト数 |
AoqNetworkStats
フィールド | 型 | 説明 |
|---|---|---|
sendBitrate | number | 送信ビットレート (bit/s) |
sendBytes | number | 累積送信バイト数 |
recvBitrate | number | 受信ビットレート (bit/s) |
recvBytes | number | 累積受信バイト数 |
loss | number | パケット損失率 (0 から 100) |
rtt | number | ラウンドトリップ遅延 (ms) |
列挙型
AoqTrackType
列挙値 | 値 | 説明 |
|---|---|---|
AoqTrackTypeAudio | 0 | オーディオトラック |
AoqTrackTypeVideo | 1 | ビデオトラック |
AoqTrackTypeData | 2 | データメッセージトラック |
AoqTrackMode
列挙値 | 値 | 説明 |
|---|---|---|
AoqTrackModeSegment | 0 | セグメント化:データは、文などのセマンティックセグメントでパッケージ化され、配信されます。 |
AoqTrackModeStream | 1 | ストリーミング:データは継続的に配信されます。 |
AoqEncoderType
列挙値 | 値 | 説明 |
|---|---|---|
AoqEncoderTypeUnknown | 0 | 不明なフォーマット |
AoqEncoderTypeAudioPCM | 1 | オーディオ PCM |
AoqEncoderTypeAudioOpus | 2 | オーディオ Opus (プラグインベース、PluginOpus が必要) |
AoqEncoderTypeVideoH264 | 3 | ビデオ H.264 |
AoqEncoderTypeVideoJpeg | 4 | ビデオ JPEG |
AoqEncoderTypeDataText | 5 | メッセージテキスト |
AoqConnectionStatus
列挙値 | 値 | 説明 |
|---|---|---|
AoqConnectionStatusDisconnected | 0 | 切断済み |
AoqConnectionStatusConnecting | 1 | 接続中 |
AoqConnectionStatusConnected | 2 | 接続済み |
AoqConnectionStatusFailed | 3 | 接続失敗 |
AoqMirrorMode
列挙値 | 値 | 説明 |
|---|---|---|
AoqMirrorModeDisabled | 0 | ミラーリングを無効にする |
AoqMirrorModeEnabled | 1 | ミラーリングを有効にする |
AoqOrientationMode
列挙値 | 値 | 説明 |
|---|---|---|
AoqOrientationModeAuto | 0 | 自動フィット |
AoqOrientationModePortrait | 1 | ポートレート |
AoqOrientationModeLandscape | 2 | ランドスケープ |
AoqErrorCode
エラーコードはネイティブレイヤーで定義されています。onError の code パラメーターと API の戻り値は両方ともこれらの値を使用します (TS レイヤーはこれらを enum としてエクスポートしません)。
列挙値 | 値 | 説明 |
|---|---|---|
AoqErrorCodeOK | 0 | 成功 |
AoqErrorCodeParamInvalid | 1 | 無効なパラメーター |
AoqErrorCodeStateInvalid | 2 | 無効な状態 |
AoqErrorCodeUnSupport | 3 | 現在のプラットフォームまたは現在のモードではサポートされていません |
AoqErrorCodeAudio | 100 | 一般的なオーディオエラー |
AoqErrorCodeAudioExternalBufferFull | 110 | 外部オーディオバッファーがいっぱいです |
AoqErrorCodeAudioDevice | 120 | 一般的なオーディオデバイスエラー |
AoqErrorCodeAudioDeviceRecordingAuthFailed | 121 | 録音権限が付与されていません |
AoqErrorCodeAudioDeviceRecordingOccupied | 122 | 録音デバイスが使用中です |
AoqErrorCodeAudioDeviceRecordingBackgroundStart | 123 | バックグラウンドでの録音開始に失敗しました |
AoqErrorCodeAudioDeviceRecordingStartFail | 124 | 録音の開始に失敗しました |
AoqErrorCodeAudioDevicePlayoutOccupied | 125 | 再生デバイスが使用中です |
AoqErrorCodeAudioDevicePlayoutBackgroundStart | 126 | バックグラウンドでの再生開始に失敗しました |
AoqErrorCodeAudioDevicePlayoutStartFail | 127 | 再生の開始に失敗しました |
AoqErrorCodeVideo | 200 | 一般的なビデオエラー |
AoqErrorCodeVideoExternalBufferFull | 210 | 外部ビデオバッファーがいっぱいです |
AoqErrorCodeVideoExternalCaptureNotEnabled | 211 | 外部ビデオキャプチャが有効になっていません |
AoqErrorCodeVideoExternalEncoderNotEnabled | 212 | 外部ビデオエンコーディングが有効になっていません |
AoqErrorCodeVideoDevice | 220 | 一般的なビデオデバイスエラー |
AoqErrorCodeVideoDeviceCameraOpenFail | 221 | カメラのオープンに失敗しました |
AoqErrorCodeVideoDeviceCameraAuthFailed | 222 | カメラの権限が付与されていません |
AoqErrorCodeVideoDeviceCameraOccupied | 223 | カメラが使用中です |
AoqErrorCodeVideoDeviceCameraRunningError | 224 | カメラのランタイム例外 |
AoqErrorCodeVideoCodec | 230 | 一般的なビデオコーデックエラー |
AoqErrorCodeVideoCodecEncoderInitFail | 231 | ビデオエンコーダーの初期化に失敗しました |
AoqErrorCodeVideoRender | 240 | 一般的なビデオレンダリングエラー |
AoqErrorCodeVideoRenderCreateFail | 241 | ビデオレンダリングの作成に失敗しました |
AoqErrorCodeVideoRenderDrawError | 242 | ビデオレンダリングの描画エラー |
-1 を返します。AoqWarningCode
列挙値 | 値 | 説明 |
|---|---|---|
AoqWCOK | 0 | 警告なし |
AoqWCAudio | 100 | 一般的なオーディオ警告 |
AoqWCAudioHowling | 101 | オーディオハウリングが検出されました |
AoqWCAudioDevice | 120 | 一般的なオーディオデバイス警告 |
AoqWCAudioDeviceMicEnumerateError | 121 | マイクの列挙エラー |
AoqWCAudioDeviceMicStartTimeout | 122 | マイクの起動がタイムアウトしました |
AoqWCAudioDeviceRecordingError | 123 | 録音中のエラー |
AoqWCAudioDeviceSpeakerEnumerateError | 124 | スピーカーの列挙エラー |
AoqWCAudioDeviceSpeakerStartTimeout | 125 | スピーカーの起動がタイムアウトしました |
AoqWCAudioDevicePlayoutError | 126 | 再生中のエラー |
AoqWCVideo | 200 | 一般的なビデオ警告 |
AoqWCVideoCameraEnumerateError | 201 | カメラの列挙エラー |
AoqWCVideoEncoderSwitched | 202 | ビデオエンコーダーが切り替わりました |
AoqWCVideoRenderDowngrade | 203 | ビデオレンダリングがダウングレードされました |
オーディオタイプ
AoqAudioCaptureConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
isExternal | boolean | いいえ | false | 外部キャプチャモードを使用するかどうかを指定します |
channel | number | いいえ | 1 | オーディオキャプチャチャンネル数。1 と 2 がサポートされています。 |
AoqAudioPlaybackConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
isExternal | boolean | いいえ | false | 外部再生モードを使用するかどうかを指定します |
channel | number | いいえ | 1 | オーディオ再生チャンネル数。1 と 2 がサポートされています。 |
isVoipMode / isDefaultSpeaker はモバイル専用フィールドであり、Electron では提供されていません。AoqAudioCodecConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
trackType | AoqTrackType | いいえ | AoqTrackTypeAudio | トラックタイプ |
codecType | AoqEncoderType | いいえ | AoqEncoderTypeAudioPCM | コーデックフォーマット |
sampleRate | number | いいえ | 48000 | サンプルレート (Hz)。エンコーディングでは、Opus 8/16/48K と PCM 8/16/32/48K がサポートされています。デコーディングでは、24K が追加でサポートされていますが、セグメントモードのみです。 |
channel | number | いいえ | 1 | チャンネル数。1 と 2 がサポートされています。 |
bitrate | number | いいえ | 32000 | ビットレート (bit/s) |
AoqAudioDeviceRouteType
次の表は、onAudioDeviceRouteChanged の有効な routeType 値をリストしています。これらの値はネイティブレイヤーによって定義され、TypeScript レイヤーによって enum としてエクスポートされません。
列挙値 | 値 | 説明 |
|---|---|---|
AoqAudioDeviceRouteDefault | 0 | デフォルトルート |
AoqAudioDeviceRouteHeadset | 1 | マイク付きヘッドフォン |
AoqAudioDeviceRouteEarpiece | 2 | レシーバー |
AoqAudioDeviceRouteHeadsetNoMic | 3 | マイクなしヘッドフォン |
AoqAudioDeviceRouteSpeakerPhone | 4 | スピーカー |
AoqAudioDeviceRouteUsb | 5 | USB オーディオデバイス |
AoqAudioDeviceRouteBluetooth | 6 | Bluetooth SCO モード |
AoqAudioDeviceRouteBluetoothA2dp | 7 | Bluetooth A2DP モード |
AoqAudioDeviceStateCode
列挙値 | 値 | 説明 |
|---|---|---|
AoqAudioDeviceNone | 0 | 状態なし |
AoqAudioDeviceRecordStarting | 1 | キャプチャ開始中 |
AoqAudioDeviceRecordStarted | 2 | キャプチャ開始 |
AoqAudioDeviceRecordStopping | 3 | キャプチャ停止中 |
AoqAudioDeviceRecordStopped | 4 | キャプチャ停止 |
AoqAudioDeviceRecordFail | 5 | キャプチャ失敗 |
AoqAudioDevicePlayStarting | 6 | 再生開始中 |
AoqAudioDevicePlayStarted | 7 | 再生開始 |
AoqAudioDevicePlayStopping | 8 | 再生停止中 |
AoqAudioDevicePlayStopped | 9 | 再生停止 |
AoqAudioDevicePlayFail | 10 | 再生失敗 |
AoqAudioDeviceState
フィールド | 型 | 説明 |
|---|---|---|
state | AoqAudioDeviceStateCode | デバイス動作状況 |
reason | number | エラー理由コード。AoqErrorCode をご参照ください。 |
オーディオファイルタイプ
AoqAudioFileMixConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
fileId | string | はい | - | ファイル識別子。後続の API 呼び出しは、これを使用してファイルを特定します。 |
fileName | string | はい | - | ファイル名 (パスを含む) |
cycles | number | いいえ | -1 | ループ回数。-1 は無制限ループを示します。 |
startPosMs | number | いいえ | 0 | 再生開始位置 (ミリ秒) |
publishVolume | number | いいえ | 100 | パブリッシングボリューム。有効な値: 0 から 100。 |
playoutVolume | number | いいえ | 100 | 再生ボリューム。有効な値: 0 から 100。 |
AoqAudioFileStateCode
列挙値 | 値 | 説明 |
|---|---|---|
AoqAudioFileNone | 0 | 状態なし |
AoqAudioFileStarted | 1 | 再生開始 |
AoqAudioFileStopped | 2 | 再生停止 |
AoqAudioFilePaused | 3 | 再生一時停止 |
AoqAudioFileResumed | 4 | 再生再開 |
AoqAudioFileEnded | 5 | 再生終了 |
AoqAudioFileBuffering | 6 | 再生バッファリング中 |
AoqAudioFileBufferingEnd | 7 | バッファリング終了 |
AoqAudioFileFailed | 8 | 再生失敗 |
AoqAudioFileErrorCode
次の表は、有効な AoqAudioFileState.errorCode の値を示しています。これらの値はネイティブレイヤーで定義され、TypeScript レイヤーでは number 値として配信されます。
列挙値 | 値 | 説明 |
|---|---|---|
AoqAudioFileNoError | 0 | エラーなし |
AoqAudioFileOpenFailed | 1 | ファイルのオープンに失敗しました |
AoqAudioFileDecodeFailed | 2 | ファイルのデコードに失敗しました |
AoqAudioFileState
フィールド | 型 | 説明 |
|---|---|---|
fileId | string | ファイル識別子 |
stateCode | AoqAudioFileStateCode | ファイル再生ステータスコード |
errorCode | number | ファイルエラーコード。AoqAudioFileErrorCode をご参照ください。 |
外部オーディオストリームタイプ
AoqAudioStreamDirection
列挙値 | 値 | 説明 |
|---|---|---|
AoqAudioStreamPublish | 0 | パブリッシングストリーム |
AoqAudioStreamPlayout | 1 | 再生ストリーム (ローカル再生) |
AoqAudioExternalStreamConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
streamId | string | はい | - | ストリーム識別子 |
trackType | AoqTrackType | いいえ | AoqTrackTypeAudio | オーディオトラックタイプ |
codecType | AoqEncoderType | いいえ | AoqEncoderTypeAudioPCM | オーディオストリームフォーマット。現在 PCM がサポートされています。 |
channels | number | いいえ | 1 | チャンネル数。パブリッシングストリームのコーデックによって制限されます。1 と 2 がサポートされています。 |
sampleRate | number | いいえ | 48000 | サンプルレート (Hz)。8、12、16、24、32、44.1、48、64、88.2、96、176.4、192K がサポートされています。 |
playoutVolume | number | いいえ | 100 | 再生ボリューム。有効な値: 0 から 100。 |
publishVolume | number | いいえ | 100 | パブリッシングボリューム。有効な値: 0 から 100。 |
maxBufferDuration | number | いいえ | 600000 | 最大バッファー時間 (ミリ秒)。有効な値: 100 以上。この値を超えるとプッシュは失敗します。 |
enable3A | boolean | いいえ | false | 入力 PCM に 3A 処理を適用するかどうかを指定します |
AoqAudioExternalFrameMeta
外部オーディオフレームのメタデータ。PCM データは buffer パラメーターを介して個別に渡されます。
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
streamId | string | はい | - | ターゲット外部オーディオストリームの識別子 |
numOfSamples | number | はい | 0 | サンプル数 (チャンネルあたり) |
bytesPerSample | number | はい | 2 | サンプルあたりのバイト数 |
numOfChannels | number | はい | 1 | チャンネル数 |
samplesPerSec | number | はい | 48000 | 1 秒あたりのサンプル数 (サンプルレート) |
pushSequence | number | いいえ | 0 | PCM 入力ラウンド |
timeStamp | number | いいえ | 0 | タイムスタンプ |
AoqAudioFrameEvent
オーディオフレームオブザーバーのイベントデータ。
フィールド | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
numOfSamples | number | サンプル数 (チャンネルあたり) |
bytesPerSample | number | サンプルあたりのバイト数 |
numOfChannels | number | チャンネル数 |
samplesPerSec | number | 1 秒あたりのサンプル数 (サンプルレート) |
timeStamp | number | タイムスタンプ |
autoGenMute | boolean | true は SDK によって生成された無音データを示します |
buffer | Uint8Array | オーディオ PCM データ (ネイティブ側で既にコピー済み) |
AoqAudioSource
列挙値 | 値 | 説明 |
|---|---|---|
AoqAudioSourceCaptured | 0 | キャプチャされたオーディオデータ |
AoqAudioSourceProcessCaptured | 1 | 3A 処理後のオーディオデータ |
AoqAudioSourcePublish | 2 | パブリッシュするオーディオデータ (接続成功が必要) |
AoqAudioSourcePlayback | 3 | 再生するオーディオデータ |
AoqAudioObserverParams
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
enabled | boolean | はい | false | この位置でのコールバックを有効または無効にします |
audioSource | AoqAudioSource | はい | AoqAudioSourceCaptured | コールバック位置 |
sampleRate | number | いいえ | 48000 | コールバックオーディオのサンプルレート (Hz)。レートが一致しない場合はリサンプリングが実行されます。 |
channels | number | いいえ | 1 | コールバック内のオーディオチャンネル数。1 と 2 がサポートされています。 |
AoqAudioVolumeIndicationConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
interval | number | いいえ | 0 | コールバック間隔 (ミリ秒)。0 以下の値はコールバックを無効にします。0 より大きく 10 未満の値は 10 として扱われます。 |
smooth | number | いいえ | 3 | ボリューム平滑化係数。値が大きいほど、出力が滑らかになります。有効な値: 0 から 10。 |
AoqAudioVolume
フィールド | 型 | 説明 |
|---|---|---|
volume | number | 平滑化された瞬間ボリューム。有効な値: 0 から 255。 |
ビデオタイプ
AoqVideoCaptureConfig
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
width | number | いいえ | 1280 | キャプチャ幅 (ピクセル)。isExternal=true の場合、このパラメーターは無効です。 |
height | number | いいえ | 720 | キャプチャ高さ (ピクセル)。isExternal=true の場合、このパラメーターは無効です。 |
fps | number | いいえ | 15 | キャプチャフレームレート。isExternal=true の場合、このパラメーターは無効です (ペースはフレーム配信によって決定されます)。 |
isExternal | boolean | いいえ | false | 外部キャプチャを使用するかどうかを指定します。true の場合、カメラは開かれません。 |
cameraDirection はモバイル専用フィールドであり、デスクトッププラットフォームには存在しません。AoqVideoCodecConfig
エンコーディングとデコーディングは同じ構造を共有します (setVideoEncoderConfig / setVideoDecoderConfig)。
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
isExternal | boolean | いいえ | false | このパラメーターが true の場合、SDK はキャプチャやエンコーディングを実行せず、フレームは pushExternalVideoEncodedFrame によって直接プッシュされます。 |
trackType | AoqTrackType | いいえ | AoqTrackTypeVideo | トラックタイプ |
codecType | AoqEncoderType | いいえ | AoqEncoderTypeVideoH264 | コーデックフォーマット |
width | number | いいえ | 540 | エンコーディング幅 (ピクセル) |
height | number | いいえ | 960 | エンコーディング高さ (ピクセル) |
fps | number | いいえ | 5 | エンコーディングフレームレート |
bitrate | number | いいえ | 500000 | 初期ビットレート (bit/s) |
minBitrate | number | いいえ | 128000 | 最小ビットレート (bit/s) |
keyframeInterval | number | いいえ | 2 | キーフレーム間隔 (秒) |
mirrorMode | AoqMirrorMode | いいえ | AoqMirrorModeDisabled | ミラーモード |
orientationMode | AoqOrientationMode | いいえ | AoqOrientationModeAuto | ビデオの向きモード |
AoqVideoPixelFormat
Electron 側でサポートされているピクセルフォーマット (モバイルプラットフォームのテクスチャ / CVPixelBuffer フォーマットを除く)。
列挙値 | 値 | 説明 |
|---|---|---|
AoqVideoPixelFormatUnknown | 0 | 不明なフォーマット |
AoqVideoPixelFormatI420 | 1 | I420 (YUV プレーナーフォーマット) |
AoqVideoPixelFormatNV12 | 2 | NV12 (YUV セミプレーナーフォーマット) |
AoqVideoPixelFormatNV21 | 3 | NV21 (YUV セミプレーナーフォーマット) |
AoqVideoPixelFormatBGRA | 4 | BGRA (32 ビット) |
AoqVideoPixelFormatRGBA | 5 | RGBA (32 ビット) |
AoqExternalVideoFrameMeta
外部の生ビデオフレームのメタデータ。ピクセルデータは buffer パラメーターを介して個別に渡されます。
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
trackType | AoqTrackType | いいえ | AoqTrackTypeVideo | トラックタイプ |
format | AoqVideoPixelFormat | はい | - | ピクセルフォーマット |
width | number | はい | - | ビデオ幅 (ピクセル) |
height | number | はい | - | ビデオ高さ (ピクセル) |
timeStamp | number | いいえ | 0 | タイムスタンプ (ミリ秒)。0 の場合、SDK はローカル時間でそれを埋めます。 |
format = I420 の場合、buffer はコンパクトレイアウト (stride = width) を使用し、Y/U/V プレーンを順番に連結する必要があります。他のパック形式の場合は、フレーム全体のバイトを直接渡します。AoqVideoCodecType
列挙値 | 値 | 説明 |
|---|---|---|
AoqVideoCodecTypeJPEG | 0 | JPEG エンコーディング |
AoqExternalVideoEncodedFrameMeta
外部でエンコードされたビデオフレームのメタデータ。エンコードされたデータは buffer パラメーターを介して個別に渡されます。
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
trackType | AoqTrackType | いいえ | AoqTrackTypeVideo | トラックタイプ |
codec | AoqVideoCodecType | いいえ | AoqVideoCodecTypeJPEG | コーデックフォーマット |
width | number | はい | - | 幅 (ピクセル) |
height | number | はい | - | 高さ (ピクセル) |
timeStamp | number | いいえ | 0 | タイムスタンプ (ミリ秒)。0 の場合、SDK はローカル時間でそれを埋めます。 |
AoqVideoDeviceStateCode
列挙値 | 値 | 説明 |
|---|---|---|
AoqVideoDeviceNone | 0 | 状態なし |
AoqVideoDeviceCaptureStarting | 1 | キャプチャ開始中 |
AoqVideoDeviceCaptureStarted | 2 | キャプチャ開始 |
AoqVideoDeviceCaptureStopping | 3 | キャプチャ停止中 |
AoqVideoDeviceCaptureStopped | 4 | キャプチャ停止 |
AoqVideoDeviceCaptureFail | 5 | キャプチャ失敗 (例:権限拒否またはデバイスが利用不可) |
AoqVideoDeviceState
フィールド | 型 | 説明 |
|---|---|---|
state | AoqVideoDeviceStateCode | デバイスキャプチャ操作ステータス |
reason | number | エラー理由コード。AoqErrorCode をご参照ください。 |
ビデオフレームコールバックタイプ
AoqVideoSource
列挙値 | 値 | 説明 |
|---|---|---|
AoqVideoSourceCaptured | 0 | 前処理前のキャプチャされたビデオデータ |
AoqVideoSourcePreEncode | 1 | エンコーディング前、前処理後のビデオデータ |
AoqVideoSourceRemote | 2 | デコーディング後、レンダリング前のリモートビデオデータ |
AoqVideoObserverAlignment
列挙値 | 値 | 説明 |
|---|---|---|
AoqVideoObserverAlignmentDefault | 0 | デフォルトのアライメント |
AoqVideoObserverAlignmentEven | 1 | 偶数アライメント |
AoqVideoObserverAlignment4 | 2 | 4 バイトアライメント |
AoqVideoObserverAlignment8 | 3 | 8 バイトアライメント |
AoqVideoObserverAlignment16 | 4 | 16 バイトアライメント |
AoqVideoObserverParams
フィールド | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
enabled | boolean | はい | false | この位置でのコールバックを有効または無効にします |
videoSource | AoqVideoSource | はい | AoqVideoSourceCaptured | コールバック位置 |
format | AoqVideoPixelFormat | いいえ | AoqVideoPixelFormatI420 | コールバックデータの期待されるピクセルフォーマット |
alignment | AoqVideoObserverAlignment | いいえ | AoqVideoObserverAlignmentDefault | 幅のアライメントポリシー |
mirrorApplied | boolean | いいえ | false | コールバックデータをミラーリングするかどうかを指定します |
YUVCanvasRenderer を使用してレンダリングする場合は、I420 を選択してください。AoqVideoFrameEvent
ビデオフレームオブザーバーのイベントデータ。
フィールド | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | トラックタイプ |
format | AoqVideoPixelFormat | ピクセルフォーマット |
width | number | 幅 (ピクセル) |
height | number | 高さ (ピクセル) |
strideY | number | Y プレーンのストライド (I420 のみ有効) |
strideU | number | U プレーンのストライド (I420 のみ有効) |
strideV | number | V プレーンのストライド (I420 のみ有効) |
timeStamp | number | タイムスタンプ (ミリ秒) |
buffer | Uint8Array | フレームデータ。I420 の場合、ストライドに基づいて連結された Y/U/V プレーンです。他のパック形式は元のデータとして渡されます。 |
データメッセージタイプ
Electron は AoqDataMsg ラッパータイプを使用しません。データメッセージはバイナリデータとして直接送受信されます:
方向 | 型 | 説明 |
|---|---|---|
送信 | Uint8Array または string |
|
受信 | Uint8Array |
|