Skip to main content

AOQ Client SDK Linux C++ API リファレンス

このトピックでは、AOQ Client SDK for Linux の C++ API、コールバック、およびデータ型について説明します。

AOQ SDK は汎用の動画 API を提供します。Qwen-Audio-Realtime は動画の入出力をサポートしていません。その他のモデルのメディア機能は、それぞれのアクセスドキュメントをご覧ください。

API インデックス

エンジンのライフサイクル

API

説明

createEngine

エンジンインスタンスの作成 (静的メソッド、シングルトン)

destroy

エンジンインスタンスの削除 (静的メソッド)

getVersion

SDK バージョンの取得 (静的メソッド)

connect

リレーサーバーへの接続

disconnect

サーバーからの切断

オーディオデバイス管理

API

説明

startAudioCapture

音声キャプチャデバイスを開く (Linux では空実装)

stopAudioCapture

音声キャプチャデバイスを閉じる (Linux では効果なし)

muteAudioCapture

音声キャプチャのミュートまたはミュート解除

startAudioPlayer

音声レンダリングの開始 (Linux では空実装)

stopAudioPlayer

音声レンダリングの停止 (Linux では効果なし)

pauseAudioPlayer

音声レンダリングの一時停止 (フェードアウト対応)

resumeAudioPlayer

音声レンダリングの再開 (フェードイン対応)

interruptAudioPlayer

現在の音声再生を中断

音声コーデック設定

API

説明

setAudioEncoderConfig

音声エンコーディングパラメーターの設定

setAudioDecoderConfig

音声デコーディングパラメーターの設定

ビデオデバイス管理

API

説明

startVideoCapture

ビデオキャプチャデバイスを開く (Linux では外部キャプチャモードのみサポート)

stopVideoCapture

ビデオキャプチャデバイスを閉じる

setLocalView

ローカルビデオレンダリングウィンドウの設定または削除 (Linux ではレンダリング実装なし)

setRemoteView

リモートビデオレンダリングウィンドウの設定または削除 (Linux ではレンダリング実装なし)

ビデオコーデックと外部入力

API

説明

setVideoEncoderConfig

ビデオエンコーディングパラメーターの設定

setVideoDecoderConfig

ビデオデコーディングパラメーターの設定 (サブスクライブ側でのコーデック提案)

pushExternalVideoCapturedFrame

外部でキャプチャされたビデオフレームのプッシュ

pushExternalVideoEncodedFrame

外部でエンコードされたビデオフレームのプッシュ

メディアストリーム制御

API

説明

enableSendMediaStream

ローカルメディアストリームの送信の有効化または無効化

オーディオファイルの再生

API

説明

startAudioFile

公開ストリームへのローカルオーディオファイルの再生開始

stopAudioFile

オーディオファイルの再生停止

pauseAudioFile

オーディオファイルの再生一時停止

resumeAudioFile

オーディオファイルの再生再開

getAudioFileDuration

オーディオファイルの総持続時間のクエリ

getAudioFileCurrentPosition

オーディオファイルの現在の再生位置を取得します

setAudioFilePositionMillis

オーディオファイルの再生位置の設定 (シーク)

setAudioFileVolume

オーディオファイルのボリューム設定

getAudioFileVolume

オーディオファイルの現在のボリュームのクエリ

外部音声ストリーム

API

説明

addAudioExternalStream

外部音声ストリームの追加

pushAudioExternalStreamData

外部音声 PCM データの供給

setAudioExternalStreamVolume

外部音声ストリームのボリューム設定

getAudioExternalStreamVolume

外部音声ストリームのボリュームのクエリ

clearAudioExternalStreamBuffer

外部音声ストリームのバッファーのクリア

removeAudioExternalStream

外部音声ストリームの削除

リアルタイムメッセージング

API

説明

sendDataMsg

リアルタイムデータメッセージの送信

音声フレームのコールバック

API

説明

setAudioFrameObserver

音声フレームデータリスナーの登録 (純粋仮想)

enableAudioFrameObserver

指定位置での音声フレームコールバックの有効化または無効化 (純粋仮想)

ローカル音量レベルの通知

API

説明

enableLocalAudioVolumeIndication

ローカルキャプチャ音量レベル通知コールバックの有効化または無効化

ビデオフレームのコールバック

API

説明

setVideoFrameObserver

ビデオフレームデータリスナーの登録 (純粋仮想)

enableVideoFrameObserver

指定位置でのビデオフレームコールバックの有効化または無効化 (純粋仮想)

AoqEngineEventListener コールバック

コールバック

説明

onError

エンジンエラーコールバック

onWarning

エンジン警告コールバック

onConnectionStatusChange

接続状態変更コールバック

onStats

エンジン統計コールバック

onAudioDeviceStateChanged

オーディオデバイス操作状態変更コールバック

onAudioDeviceRouteChanged

オーディオ出力ルート変更コールバック (Linux ではトリガーされない)

onAudioFileState

オーディオファイル再生状態コールバック

onLocalAudioVolumeIndication

ローカルキャプチャ音量レベル通知コールバック

onVideoDeviceStateChanged

ビデオデバイス操作状態変更コールバック

onDataMsg

受信したリアルタイムデータメッセージのコールバック

フレームデータリスナーインターフェイス

API

説明

IAudioFrameObserver

音声フレームデータリスニング用インターフェイス (4つの純粋仮想コールバック)

IVideoFrameObserver

ビデオフレームデータリスニング用インターフェイス (3つの純粋仮想コールバック)

API の詳細

エンジンのライフサイクル

createEngine

エンジンインスタンスを作成します。SDK はエンジンをグローバルシングルトンとして保持するため、このメソッドを再度呼び出すと既存のインスタンスが返されます。
static AoqClientEngine* createEngine(const AoqCreateConfig& config,
                                    AoqEngineEventListener* listener);

パラメーター

型

説明

config

AoqCreateConfig

エンジン作成構成

listener

AoqEngineEventListener\*

エンジンイベントコールバックリスナー。呼び出し元が継承によって実装します。

戻り値:エンジンインスタンスへのポインター。失敗した場合は nullptr が返されます。リスナーのライフサイクルは、エンジンのライフサイクルよりも長くする必要があります。

destroy

エンジンインスタンスを削除し、すべてのリソースを解放します。
static int destroy();
戻り値:0 は成功を示し、0 以外の値は失敗を示します。

getVersion

現在の SDK バージョンを取得します。
static const char* getVersion();
戻り値:SDK によって保持されるバージョン文字列。

connect

リレーサーバーに接続します。アプリケーションサーバーは、使用中のプロトコルに基づいて一時的な AOQ 接続パラメーターを取得し、クライアントに送信します。詳細については、「トークン認証」をご参照ください。
virtual int connect(const AoqConnectConfig& config);

パラメーター

型

説明

config

AoqConnectConfig

接続構成。トークン、SID、リレーアクセスポイントの配列、公開およびサブスクライブトラックの配列が含まれます。

戻り値:0 は成功を示し、操作は非同期で実行されます。0 以外の値は失敗を示します。接続結果は onConnectionStatusChange によって通知されます。
relayEndpoints / publishTracks / subscribeTracks はすべて「C スタイルの配列ポインター + 長さ」の構造です。メモリは呼び出し元によって保持され、connect 呼び出し中にのみ有効である必要があります。

disconnect

サーバーから切断し、接続に関連付けられているリソースを解放します。
virtual int disconnect();
戻り値:0 は成功を示し、0 以外の値は失敗を示します。

オーディオデバイス管理

virtual int startAudioCapture(const AoqAudioCaptureConfig& config);
virtual int stopAudioCapture();
virtual int muteAudioCapture(bool mute);
virtual int startAudioPlayer(const AoqAudioPlaybackConfig& config);
virtual int stopAudioPlayer();
virtual int pauseAudioPlayer(int fadeMs);
virtual int resumeAudioPlayer(int fadeMs);
virtual int interruptAudioPlayer(AoqTrackType trackType, int fadeMs);

パラメーター

型

説明

config

AoqAudioCaptureConfig / AoqAudioPlaybackConfig

キャプチャと再生の構成

mute

bool

true はミュート、false はミュート解除

fadeMs

int

フェードアウトまたはフェードインの持続時間 (ミリ秒)。0 は即時実行を示します。

trackType

AoqTrackType

トラックタイプ

Linux での重要な制約:startAudioCapture / startAudioPlayer は Linux ビルドでは空実装です (直接 0 を返し、サウンドカードデバイスを開きません)。また、stopAudioCapture / stopAudioPlayer は内部状態が設定されないため、実際には効果がありません。Linux では、音声入力には外部音声ストリーム (2.8) を使用し、音声出力の再生には音声フレームコールバック (2.10) を使用してご自身で再生してください。詳細については、4.3 をご参照ください。

音声コーデック設定

virtual int setAudioEncoderConfig(const AoqAudioCodecConfig& config);
virtual int setAudioDecoderConfig(const AoqAudioCodecConfig& config);
このメソッドは connect() の前に呼び出すことを推奨します。サンプルレートとモードの無効な組み合わせは、connect 中に AoqECParamInvalid を伴う onError コールバックをトリガーします。

ビデオデバイス管理

virtual int startVideoCapture(const AoqVideoCaptureConfig& config);
virtual int stopVideoCapture();
virtual int setLocalView(AoqTrackType trackType, const AoqVideoCanvas& canvas);
virtual int setRemoteView(AoqTrackType trackType, const AoqVideoCanvas& canvas);

パラメーター

型

説明

config

AoqVideoCaptureConfig

ビデオキャプチャ構成

trackType

AoqTrackType

ビデオトラックタイプ

canvas

AoqVideoCanvas

レンダリングキャンバス。canvas.view == nullptr の場合、バインディングは削除されます。

Linux での重要な制約:Linux でのカメラキャプチャはプレースホルダー実装であり、フレームを生成しません。startVideoCapture({.isExternal = true}) + pushExternalVideoCapturedFrame を使用してフレームを配信してください。setLocalView / setRemoteView は Linux にはレンダリングバックエンドがありません (AoqVideoCanvas.view は Apple NSView* / Windows HWND / Android レンダリングビューのみをサポートします)。プレビューには、ビデオフレームコールバック (2.12) を通じてご自身でレンダリングしてください。詳細については、4.3 をご参照ください。

ビデオコーデックと外部入力

virtual int setVideoEncoderConfig(const AoqVideoCodecConfig& config);
virtual int setVideoDecoderConfig(const AoqVideoCodecConfig& config);
virtual int pushExternalVideoCapturedFrame(AoqTrackType trackType, const AoqVideoFrame& frame);
virtual int pushExternalVideoEncodedFrame(AoqTrackType trackType, const AoqVideoEncodedFrame& frame);

パラメーター

型

説明

config

AoqVideoCodecConfig

config.trackType に基づいてルーティングされるコーデック構成

trackType

AoqTrackType

ルーティングターゲット。AoqTrackTypeVideo に設定します。

frame

AoqVideoFrame / AoqVideoEncodedFrame

生フレームまたはエンコード済みフレームデータ

注:
  • setVideoDecoderConfig はサブスクライブ側のコーデック提案であり、connect の前に呼び出す必要があります。デコード中、trackType/codecType/width/height/fps/bitrate のみが有効です。
  • pushExternalVideoCapturedFrame は、最初に startVideoCapture(isExternal=true) を必要とします。外部キャプチャが開始されていない場合は AoqECVideoExternalCaptureNotEnabled(211) を、フォーマットがサポートされていない場合は AoqECParamInvalid を、バッファーが満杯の場合は AoqECVideoExternalBufferFull(210) を返します。
  • pushExternalVideoEncodedFrame は、最初に setVideoEncoderConfig(isExternal=true) を必要とします。SDK はフレームを再エンコードせずに直接パッケージ化して送信します。現在、JPEG のみがサポートされています。
  • frame.timeStamp が 0 の場合、SDK はローカル時間でそれを埋めます。

メディアストリーム制御

virtual int enableSendMediaStream(AoqTrackType trackType, bool enable);
特定のローカルメディアストリームを送信するかどうかを指定します。trackType は AoqTrackTypeAudio または AoqTrackTypeVideo にすることができます。戻り値 0 は、呼び出しがディスパッチされ、非同期で実行されることを示します。初期化後に送信を無効にし、onConnectionStatusChange が AoqConnectionStatusConnected を報告した後にのみ有効にすることを推奨します。

オーディオファイルの再生

virtual int startAudioFile(const char* fileId, const AoqAudioFileMixConfig& config);
virtual int stopAudioFile(const char* fileId);
virtual int pauseAudioFile(const char* fileId);
virtual int resumeAudioFile(const char* fileId);
virtual int64_t getAudioFileDuration(const char* fileId);
virtual int64_t getAudioFileCurrentPosition(const char* fileId);
virtual int setAudioFilePositionMillis(const char* fileId, int64_t positionMillis);
virtual int setAudioFileVolume(const char* fileId, AoqAudioStreamDirection type, int volume);
virtual int getAudioFileVolume(const char* fileId, AoqAudioStreamDirection type);

パラメーター

型

説明

fileId

const char\*

オーディオファイル ID。ビジネスレイヤーはグローバルな一意性を保証する必要があります。

config

AoqAudioFileMixConfig

ファイルミキシング構成

positionMillis

int64_t

ターゲット再生位置 (ミリ秒)

type

AoqAudioStreamDirection

公開ボリュームまたはローカル再生ボリューム

volume

int

ボリューム。有効な値:0 から 100。

戻り値の説明:
  • getAudioFileDuration / getAudioFileCurrentPosition:>=0 の値はミリ秒単位の値です。<0 の値は失敗を示し、その絶対値は -AoqErrorCode です。
  • getAudioFileVolume:0-100 の値はボリュームです。<0 の値は失敗を示し、その絶対値は -AoqErrorCode です。
再生状態の変更は onAudioFileState コールバックを通じて報告されます。ファイルミキシングは公開パスを使用し、ローカルサウンドカードに依存しません。したがって、Linux では、ローカルファイルを音声ソースとしてプッシュするために使用できます。

外部音声ストリーム

virtual int addAudioExternalStream(const char* streamId, const AoqAudioExternalStreamConfig& config);
virtual int pushAudioExternalStreamData(const char* streamId, AoqAudioFrameData& data);
virtual int setAudioExternalStreamVolume(const char* streamId, AoqAudioStreamDirection type, int vol);
virtual int getAudioExternalStreamVolume(const char* streamId, AoqAudioStreamDirection type);
virtual void clearAudioExternalStreamBuffer(const char* streamId, int fadeoutMs);
virtual int removeAudioExternalStream(const char* streamId);

パラメーター

型

説明

streamId

const char\*

外部音声ストリーム ID。ビジネスレイヤーはグローバルな一意性を保証する必要があります。

config

AoqAudioExternalStreamConfig

外部音声ストリーム構成

data

AoqAudioFrameData

生の外部音声データ (PCM)、非 const 参照として

type

AoqAudioStreamDirection

公開ボリュームまたはローカル再生ボリューム

vol

int

ボリューム。有効な値:0 から 100。

fadeoutMs

int

フェードアウト持続時間。-1 は SDK のデフォルトフェードアウトを使用し、0 はフェードアウトなしでバッファーをクリアし、0 より大きい値は指定されたフェードアウト持続時間 (ミリ秒) を維持します。

注:
  • pushAudioExternalStreamData が AoqECAudioExternalBufferFull(110) を返した場合、SDK の内部バッファーは満杯です。20 ms 待ってから現在のデータフレームを再送信することを推奨します。
  • ベストプラクティス:リアルタイムキャプチャシナリオでは、一度に 10 ms のデータをプッシュし、データが利用可能になるたびにプッシュします。ファイルソースシナリオでは、30 ms の間隔で一度に 40 ms のデータをプッシュし、AoqECAudioExternalBufferFull の戻り値を処理します。
  • getAudioExternalStreamVolume:0-100 の値はボリュームです。<0 の値は失敗を示し、その絶対値は -AoqErrorCode です。
  • clearAudioExternalStreamBuffer は void を返し、戻り値はありません。
  • data.pushSequence は、SDK の消費完了通知 (PCM 入力ラウンド) に使用されます。
    Linux には実際のキャプチャデバイスはありません。この API グループは、音声アップリンクの主要なパスです。

リアルタイムメッセージング

virtual int sendDataMsg(const AoqDataMsg& msg);
リアルタイムデータメッセージを送信します。msg.data は呼び出し元が保持するメモリを指し、呼び出し中にのみ有効である必要があります。ピアからのメッセージは onDataMsg コールバックを通じて報告されます。

音声フレームのコールバック

virtual int setAudioFrameObserver(IAudioFrameObserver* observer) = 0;
virtual int enableAudioFrameObserver(bool enabled, AoqAudioSource audioSource,
                                     const AoqAudioObserverConfig& config) = 0;

パラメーター

型

説明

observer

IAudioFrameObserver\*

リスナーインスタンス。nullptr を渡してコールバックを停止します。

enabled

bool

この位置でデータコールバックを有効にするかどうかを指定します

audioSource

AoqAudioSource

生音声データソースの位置

config

AoqAudioObserverConfig

コールバックのサンプルレート、チャンネル数、および読み書きモード

使用方法:まず、setAudioFrameObserver(observer) を呼び出してリスナーを登録します。次に、必要な各位置に対して enableAudioFrameObserver を呼び出します。オブザーバーのライフサイクルは、コールバック期間全体をカバーする必要があります。オブザーバーを登録解除した後にのみ解放してください。 読み書きモードのサポート (IAudioFrameObserver 宣言を参照):onCapturedAudioFrame / onProcessCapturedAudioFrame / onPlaybackAudioFrame は読み書きモードをサポートしますが、onPublishAudioFrame は読み取り専用モードのみをサポートします。
Linux では、setAudioFrameObserver は非同期ディスパッチ (コントロールスレッドへの PostTask) を通じて登録を完了するため、コールバックは呼び出しが返された後、わずかに遅れて有効になる場合があります。オブザーバーを解放する前に、十分な安全マージンを確保するか、オブジェクトを存続させてください。

ローカル音量レベルの通知

virtual int enableLocalAudioVolumeIndication(const AoqAudioVolumeIndicationConfig& config);
ローカルキャプチャ音量レベルの通知を有効または無効にします。config.interval <= 0 の場合、コールバックは無効になります。有効にすると、onLocalAudioVolumeIndication は config.interval で指定された間隔でトリガーされます。音量データを取得するには、startAudioCapture の後にこのメソッドを呼び出す必要があります。
Linux にはデバイスキャプチャがありません。このコールバックの音量データは、公開/再生ミキシングパス (ミキサー) から取得されます。

ビデオフレームのコールバック

virtual int setVideoFrameObserver(IVideoFrameObserver* observer) = 0;
virtual int enableVideoFrameObserver(bool enabled, AoqVideoSource videoSource,
                                     const AoqVideoObserverConfig& config) = 0;

パラメーター

型

説明

observer

IVideoFrameObserver\*

リスナーインスタンス。nullptr を渡してコールバックを停止します。

enabled

bool

この位置でデータコールバックを有効にするかどうかを指定します

videoSource

AoqVideoSource

ビデオフレームコールバックのデータソース (パイプライン内の位置)

config

AoqVideoObserverConfig

期待されるピクセルフォーマット、アライメントポリシー、読み書きモード、およびミラーリング

コールバックが true を返した場合、データは変更されており、SDK に書き戻す必要があります。これは I420 / CVPixelBuffer にのみ有効であり、Linux では I420 のみを意味します。コールバックが false を返した場合、データは読み取り専用です。
Linux には組み込みのレンダリングがありません。このコールバックグループは、リモートビデオイメージを取得する唯一の方法です (AoqVideoSourceRemote)。

AoqEngineEventListener コールバック

AoqEngineEventListener は、SDK からのすべての非同期イベント通知の統一されたエントリポイントです。これを継承して実装し、createEngine を呼び出すときに渡します。
Android との主な違い:このクラスのすべてのコールバックは、デフォルトの空実装がない純粋仮想関数 (= 0) です。Linux では、以下の 10 個のメソッドを完全に実装する必要があります。そうしないと、派生クラスをインスタンス化できません。コールバックは、内部 SDK スレッドでトリガーされる場合があります。
class AOQ_API AoqEngineEventListener {
public:
    AoqEngineEventListener();
    virtual ~AoqEngineEventListener();

    virtual void onError(int code, const char* message) = 0;
    virtual void onWarning(int code, const char* message) = 0;
    virtual void onConnectionStatusChange(AoqConnectionStatus status) = 0;
    virtual void onStats(const AoqStats& stats) = 0;
    virtual void onAudioDeviceStateChanged(const AoqAudioDeviceState& state) = 0;
    virtual void onAudioDeviceRouteChanged(int routeType) = 0;
    virtual void onAudioFileState(const AoqAudioFileState& state) = 0;
    virtual void onLocalAudioVolumeIndication(const AoqAudioVolume& volume) = 0;
    virtual void onVideoDeviceStateChanged(const AoqVideoDeviceState& state) = 0;
    virtual void onDataMsg(const AoqDataMsg& msg) = 0;
};

onError

エンジンエラーコールバック。code は AoqErrorCode 列挙値 (3.3 を参照) に対応し、message はコールバック中にのみ有効です。

onWarning

エンジン警告コールバック。code は AoqWarningCode 列挙値 (3.3 を参照) に対応します。

onConnectionStatusChange

接続状態変更コールバック。状態遷移:Disconnected -> Connecting -> Connected / Failed -> Disconnected。

onStats

エンジン統計コールバック。SDK は、音声とビデオの公開およびサブスクライブ統計、およびネットワーク統計を定期的に報告します。これらを使用して、通話品質とネットワーク状態をリアルタイムで監視し、音声とビデオの問題を診断できます。

パラメーター

型

説明

stats

AoqStats

音声、ビデオ、およびデータメッセージの公開およびサブスクライブ統計とネットワーク統計

AoqStats は内部で「配列ポインター + カウント」構造を使用します。ポインターはコールバック中にのみ有効であるため、非同期で使用する場合はご自身でデータをコピーする必要があります。

onAudioDeviceStateChanged

オーディオデバイスのキャプチャおよび再生操作の状態変更に関するコールバック。state.reason は AoqErrorCode 値です。

onAudioDeviceRouteChanged

オーディオ出力ルート変更コールバック。routeType は AoqAudioDeviceRouteType 列挙値 (3.4 を参照) に対応します。
Linux ではトリガーされません:Linux ビルドにはプラットフォームデバイスリスナーが含まれていません (AOQ_HAS_NATIVE_DEVICE_MONITOR は Windows / macOS でのみ定義されています)。また、サーバー側のオーディオデバイスはルートイベントを生成しません。このメソッドは (純粋仮想であるため) 実装する必要がありますが、実装は空にすることができます。

onAudioFileState

オーディオファイル再生状態のコールバック。state.fileId はコールバック中にのみ有効です。

onLocalAudioVolumeIndication

ローカルキャプチャ音量レベル通知コールバック。有効にするには、enableLocalAudioVolumeIndication を呼び出します。

onVideoDeviceStateChanged

ビデオデバイスキャプチャ操作の状態変更に関するコールバック。state.reason は AoqErrorCode 値です。

onDataMsg

受信したリアルタイムデータメッセージのコールバック。msg.data はコールバック中にのみ有効であることが保証されます。非同期で使用する必要がある場合は、ご自身でコピーしてください。

フレームデータリスナーインターフェイス

IAudioFrameObserver

音声データリスニング用インターフェイス。コールバック内で時間のかかる操作を実行しないでください。実行すると、音声の異常が発生する可能性があります。すべてのメソッドは純粋仮想関数であり、完全に実装する必要があります。
class AOQ_API IAudioFrameObserver {
public:
    virtual ~IAudioFrameObserver() {}
    virtual void onCapturedAudioFrame(const AoqAudioFrameData& data) = 0;
    virtual void onProcessCapturedAudioFrame(const AoqAudioFrameData& data) = 0;
    virtual void onPublishAudioFrame(AoqTrackType trackType, const AoqAudioFrameData& data) = 0;
    virtual void onPlaybackAudioFrame(const AoqAudioFrameData& data) = 0;
};

コールバック

有効化方法 (audioSource)

読み書きモード

onCapturedAudioFrame

AoqAudioSourceCaptured

読み書き対応

onProcessCapturedAudioFrame

AoqAudioSourceProcessCaptured

読み書き対応

onPublishAudioFrame

AoqAudioSourcePublish (connect 成功が必要)

読み取り専用のみサポート

onPlaybackAudioFrame

AoqAudioSourcePlayback

読み書き対応

上記のすべてのコールバックは、AoqAudioObserverConfig を使用してサンプルレートとチャンネル数を設定することをサポートしています。
Linux では、onPlaybackAudioFrame はリモートダウンリンク PCM を取得するための主要なパスです。3A モジュールは Linux ではコンパイルされないため、onProcessCapturedAudioFrame (3A 処理後のデータ) からのデータは、基本的に生のキャプチャデータと同じです。詳細については、4.3 をご参照ください。

IVideoFrameObserver

ビデオデータリスニング用インターフェイス。コールバック内で時間のかかる操作を実行しないでください。実行すると、ビデオのコマ落ちが発生する可能性があります。すべてのメソッドは純粋仮想関数です。
class AOQ_API IVideoFrameObserver {
public:
    virtual ~IVideoFrameObserver() {}
    virtual bool onCapturedVideoFrame(AoqVideoFrame& frame) = 0;
    virtual bool onPreEncodeVideoFrame(AoqTrackType trackType, AoqVideoFrame& frame) = 0;
    virtual bool onRemoteVideoFrame(AoqTrackType trackType, AoqVideoFrame& frame) = 0;
};

コールバック

有効化方法 (videoSource)

説明

onCapturedVideoFrame

AoqVideoSourceCaptured

キャプチャ後、前処理前のローカル生データ

onPreEncodeVideoFrame

AoqVideoSourcePreEncode

エンコード前、前処理後のローカル生データ

onRemoteVideoFrame

AoqVideoSourceRemote

デコード後、レンダリング前のリモート生データ

戻り値:true はデータが変更されたことを示し、SDK に書き戻す必要があります。これは I420 / CVPixelBuffer にのみ有効です。false は読み取り専用を示します。frame 内のポインターはコールバック中にのみ有効です。非同期で使用するには、ご自身でコピーしてください。

データ型と列挙型

すべての型は AoqClientSdk 名前空間の AoqClientEngine.h で定義されています。すべての構造体はデフォルト値を持つ POD 型であるため、宣言するだけで表のデフォルト値が得られます。モバイル専用としてマークされたフィールドは、Linux では条件付きコンパイルによって除外され、構造体には存在しません。

共通の型

AoqCreateConfig

フィールド

型

デフォルト値

説明

workDir

const char\*

nullptr

SDK の作業ディレクトリ (ログおよび一時ファイル用)

enableDumpAudio

bool

false

音声データを保存するかどうかを指定します (デバッグ用)

extras

const char\*

nullptr

拡張パラメーター (JSON 文字列)

文字列フィールドは、少なくとも createEngine が返されるまで有効である必要があります。エンジンは必要に応じて内部でそれらをコピーします。Android の isBTScoMode フィールドはモバイル専用であり、Linux には存在しません。

AoqConnectConfig

フィールド

型

デフォルト値

説明

token

const char\*

nullptr

接続認証トークン

sid

const char\*

nullptr

セッション ID

certFingerprint

const char\*

nullptr

サーバー証明書のフィンガープリント

workspaceIdHash

const char\*

nullptr

ワークスペース ID のハッシュ

relayEndpoints

const AoqRelayEndpoint\*

nullptr

リレーアクセスポイント配列の開始アドレス

relayEndpointsCount

size_t

0

リレーアクセスポイントの数

publishTracks

const AoqTrackParam\*

nullptr

公開トラック属性の配列の開始アドレス

publishTracksCount

size_t

0

公開トラックの数

subscribeTracks

const AoqTrackParam\*

nullptr

サブスクライブトラック属性の配列の開始アドレス

subscribeTracksCount

size_t

0

サブスクライブトラックの数

AoqRelayEndpoint

フィールド

型

デフォルト値

説明

route_index

int

-1

ルートインデックス

endpoint

const char\*

nullptr

リレーサーバーのドメイン名または IP アドレス

port

int

0

リレーサーバーのポート

フィールド名 route_index は、他のフィールドで使用されるキャメルケースとは異なり、スネークケースを使用していることにご注意ください。

AoqTrackParam

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeAudio

トラックタイプ

trackMode

AoqTrackMode

AoqTrackModeSegment

ストリーミングまたは非ストリーミングモード。音声ダウンリンクにのみ有効です。

AoqDataMsg

フィールド

型

デフォルト値

説明

data

const uint8_t\*

nullptr

メッセージ内容。呼び出し元が保持するメモリを指します。

dataSize

size_t

0

バイト数

データがコールバックで使用される場合、コールバック中にのみ有効であることが保証されます。非同期で使用する場合は、ご自身でデータをコピーしてください。

統計の種類

AoqStats

エンジン統計の概要。onStats を通じて定期的に報告されます。「配列ポインター + カウント」構造を使用し、すべてのポインターはデフォルトで nullptr、すべてのカウントはデフォルトで 0 です。

フィールド

型

説明

audioPublishStats

const AoqAudioPublishStats\*

音声の公開統計の配列

audioPublishStatsCount

unsigned int

音声の公開統計エントリの数

videoPublishStats

const AoqVideoPublishStats\*

ビデオの公開統計の配列

videoPublishStatsCount

unsigned int

ビデオの公開統計エントリの数

dataMsgPublishStats

const AoqDataMsgPublishStats\*

データメッセージの公開統計の配列

dataMsgPublishStatsCount

unsigned int

データメッセージの公開統計エントリの数

audioSubscribeStats

const AoqAudioSubscribeStats\*

音声のサブスクライブ統計の配列

audioSubscribeStatsCount

unsigned int

音声のサブスクライブ統計エントリの数

videoSubscribeStats

const AoqVideoSubscribeStats\*

ビデオのサブスクライブ統計の配列

videoSubscribeStatsCount

unsigned int

ビデオのサブスクライブ統計エントリの数

dataMsgSubscribeStats

const AoqDataMsgSubscribeStats\*

データメッセージのサブスクライブ統計の配列

dataMsgSubscribeStatsCount

unsigned int

データメッセージのサブスクライブ統計エントリの数

networkStats

const AoqNetworkStats\*

ネットワーク統計

AoqAudioPublishStats

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeAudio

トラックタイプ

bitrate

unsigned int

0

ビットレート (bit/s)

bytes

uint64_t

0

累計送信バイト数

encodeVolume

unsigned int

0

公開ストリームのエンコーディングボリューム

AoqAudioSubscribeStats

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeAudio

トラックタイプ

bitrate

unsigned int

0

ビットレート (bit/s)

bytes

uint64_t

0

累計受信バイト数

playVolume

unsigned int

0

再生ボリューム

AoqVideoPublishStats

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeVideo

トラックタイプ

bitrate

unsigned int

0

ビットレート (bit/s)

bytes

uint64_t

0

累計送信バイト数

encodeFps

unsigned int

0

エンコーディングフレームレート

AoqVideoSubscribeStats

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeVideo

トラックタイプ

bitrate

unsigned int

0

ビットレート (bit/s)

bytes

uint64_t

0

累計受信バイト数

decodeFps

unsigned int

0

デコーディングフレームレート

renderFps

unsigned int

0

レンダリングフレームレート

AoqDataMsgPublishStats / AoqDataMsgSubscribeStats

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeData

トラックタイプ

bitrate

unsigned int

0

ビットレート (bit/s)

bytes

uint64_t

0

累計送受信バイト数

AoqNetworkStats

フィールド

型

デフォルト値

説明

sendBitrate

unsigned int

0

送信ビットレート (bit/s)

sendBytes

uint64_t

0

累計送信バイト数

recvBitrate

unsigned int

0

受信ビットレート (bit/s)

recvBytes

uint64_t

0

累計受信バイト数

loss

unsigned int

0

パケット損失率 (0 から 100)

rtt

unsigned int

0

ラウンドトリップ遅延 (ms)

列挙型

AoqTrackType

列挙値

値

説明

AoqTrackTypeAudio

0

音声トラック

AoqTrackTypeVideo

1

ビデオトラック

AoqTrackTypeData

2

データメッセージトラック

AoqTrackMode

列挙値

値

説明

AoqTrackModeSegment

0

セグメント化:データは文などの意味的なセグメントにパッケージ化されて配信されます。

AoqTrackModeStream

1

ストリーミング:データは継続的に配信されます。

AoqEncoderType

列挙値

値

説明

AoqEncoderTypeUnknown

0

不明なフォーマット

AoqEncoderTypeAudioPCM

1

音声 PCM

AoqEncoderTypeAudioOpus

2

音声 Opus (プラグインベース、Linux に静的にビルドされており、すぐに利用可能)

AoqEncoderTypeVideoH264

3

ビデオ H.264

AoqEncoderTypeVideoJpeg

4

ビデオ JPEG

AoqEncoderTypeDataText

5

メッセージテキスト

AoqConnectionStatus

列挙値

値

説明

AoqConnectionStatusDisconnected

0

切断済み

AoqConnectionStatusConnecting

1

接続中

AoqConnectionStatusConnected

2

接続済み

AoqConnectionStatusFailed

3

接続失敗

AoqErrorCode

命名に関する注意:C++ ヘッダーでは、列挙リテラルは短縮形の AoqEC* 形式を使用します (Android の完全な AoqErrorCode* 形式とは異なります) が、値は同一です。

列挙値

値

説明

AoqECOK

0

成功

AoqECParamInvalid

1

無効なパラメーター

AoqECStateInvalid

2

無効な状態

AoqECUnSupport

3

API は呼び出されましたが、現在のプラットフォームまたは現在のモードでは実装されていません

AoqECAudio

100

一般的な音声エラー

AoqECAudioExternalBufferFull

110

外部音声バッファーが満杯です

AoqECAudioDevice

120

一般的なオーディオデバイスエラー

AoqECAudioDeviceRecordingAuthFailed

121

録音権限が付与されていません

AoqECAudioDeviceRecordingOccupied

122

録音デバイスが使用中です

AoqECAudioDeviceRecordingBackgroundStart

123

バックグラウンドでの録音開始に失敗しました

AoqECAudioDeviceRecordingStartFail

124

録音の開始に失敗しました

AoqECAudioDevicePlayoutOccupied

125

再生デバイスが使用中です

AoqECAudioDevicePlayoutBackgroundStart

126

バックグラウンドでの再生開始に失敗しました

AoqECAudioDevicePlayoutStartFail

127

再生の開始に失敗しました

AoqECAudioDeviceEarpieceRequiresVoipMode

128

レシーバーには VoIP モードが必要です (モバイルシナリオ)

AoqECVideo

200

一般的なビデオエラー

AoqECVideoExternalBufferFull

210

外部ビデオバッファーが満杯です

AoqECVideoExternalCaptureNotEnabled

211

外部ビデオキャプチャが有効になっていません

AoqECVideoExternalEncoderNotEnabled

212

外部ビデオエンコーディングが有効になっていません

AoqECVideoDevice

220

一般的なビデオデバイスエラー

AoqECVideoDeviceCameraOpenFail

221

カメラを開けませんでした

AoqECVideoDeviceCameraAuthFailed

222

カメラの権限が付与されていません

AoqECVideoDeviceCameraOccupied

223

カメラが使用中です

AoqECVideoDeviceCameraRunningError

224

カメラのランタイム例外

AoqECVideoCodec

230

一般的なビデオコーデックエラー

AoqECVideoCodecEncoderInitFail

231

ビデオエンコーダーの初期化に失敗しました

AoqECVideoRender

240

一般的なビデオレンダリングエラー

AoqECVideoRenderCreateFail

241

ビデオレンダリングの作成に失敗しました

AoqECVideoRenderDrawError

242

ビデオレンダリングの描画エラー

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

ビデオレンダリングがスペックダウンしました

AoqMirrorMode

列挙値

値

説明

AoqMirrorModeDisabled

0

ミラーリングを無効にする

AoqMirrorModeEnabled

1

ミラーリングを有効にする

AoqOrientationMode

列挙値

値

説明

AoqOrientationModeAuto

0

自動フィット

AoqOrientationModePortrait

1

ポートレート

AoqOrientationModeLandscape

2

横向き

AoqRenderMode

列挙値

値

説明

AoqRenderModeAuto

0

適応モード

AoqRenderModeStretch

1

ストレッチモード

AoqRenderModeFill

2

フィルモード

AoqRenderModeCrop

3

クロップモード

これは AoqVideoCanvas.renderMode としてのみ使用されます。Linux にはレンダリング実装がないため、この列挙型は実際には効果がありません。

AoqAudioStreamDirection

列挙値

値

説明

AoqAudioStreamPublish

0

公開音声

AoqAudioStreamPlayout

1

再生音声

AoqAudioExternalStreamToggle

列挙値

値

説明

AoqAudioExternalStreamToggleNormal

0

回復済み

AoqAudioExternalStreamTogglePause

1

一時停止

この列挙型はヘッダーで宣言されていますが、現在、これを使用する公開 API はありません。予約済みの定義です。

音声関連の型

AoqAudioCaptureConfig

フィールド

型

デフォルト値

説明

isExternal

bool

false

外部キャプチャを使用するかどうかを指定します

channel

int

1

音声キャプチャチャンネル数。1 と 2 がサポートされています。

isVoipMode はモバイル専用フィールドであり、Linux には存在しません。

AoqAudioPlaybackConfig

フィールド

型

デフォルト値

説明

isExternal

bool

false

外部再生を使用するかどうかを指定します

channel

int

1

音声再生チャンネル数。1 と 2 がサポートされています。

isVoipMode / isDefaultSpeaker はモバイル専用フィールドであり、Linux には存在しません。

AoqAudioCodecConfig

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeAudio

トラックタイプ

codecType

AoqEncoderType

AoqEncoderTypeAudioPCM

エンコーディングタイプ

sampleRate

int

48000

サンプルレート (Hz)

channel

int

1

チャンネル数。1 と 2 がサポートされています。

bitrate

int

32000

ビットレート (bit/s)

サンプルレートの制約 (ヘッダーファイルのコメントから抜粋):
  • エンコーディング:Opus は 8 / 16 / 48K をサポートし、PCM は 8 / 16 / 32 / 48K をサポートします。
  • デコーディング:24K が追加でサポートされますが、24K はセグメントモードに限定されます (ストリームモードは 24K をサポートしません)。
  • 無効な組み合わせは、connect 中に AoqECParamInvalid を伴う onError コールバックをトリガーします。

AoqAudioDeviceRouteType

列挙値

値

説明

AoqAudioDeviceRouteDefault

0

デフォルトルート

AoqAudioDeviceRouteHeadset

1

ヘッドフォン

AoqAudioDeviceRouteEarpiece

2

レシーバー

AoqAudioDeviceRouteHeadsetNoMic

3

マイクなしのヘッドフォン

AoqAudioDeviceRouteSpeakerPhone

4

内蔵スピーカー

AoqAudioDeviceRouteUsb

5

USB オーディオデバイス

AoqAudioDeviceRouteBluetooth

6

Bluetooth

AoqAudioDeviceRouteBluetoothA2dp

7

Bluetooth A2DP

これは routeType の onAudioDeviceRouteChanged の値の参照にすぎません。Linux はこのコールバックをトリガーしません。

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

AoqAudioDeviceNone

デバイス操作状態

reason

int

0

エラー理由コード。AoqErrorCode をご参照ください。

AoqAudioFrameData

生音声データ。pushAudioExternalStreamData を介した外部ストリーム供給と IAudioFrameObserver コールバックの両方で使用されます。

フィールド

型

デフォルト値

説明

dataPtr

void\*

0

音声 PCM データへのポインター

numOfSamples

int

0

サンプル数 (チャンネルあたり)

bytesPerSample

int

0

サンプルあたりのバイト数

numOfChannels

int

0

チャンネル数

samplesPerSec

int

0

1 秒あたりのサンプル数 (サンプルレート)

pushSequence

int

0

PCM 入力ラウンド (ストリーム消費完了通知に使用)

timeStamp

int64_t

0

タイムスタンプ

dataSize

int

0

データ長 (バイト)

autoGenMute

bool

false

コールバックでのみ有効。true は SDK によって生成された無音データを示します。

AoqAudioSource

列挙値

値

説明

AoqAudioSourceCaptured

0

キャプチャされた音声データ

AoqAudioSourceProcessCaptured

1

3A 処理後の音声データ

AoqAudioSourcePublish

2

公開する音声データ (connect 成功が必要)

AoqAudioSourcePlayback

3

再生する音声データ

AoqAudioSourceMax

4

プレースホルダー、使用しないでください

AoqAudioObserverMode

列挙値

値

説明

AoqAudioObserverModeReadOnly

0

読み取り専用モード

AoqAudioObserverModeReadWrite

1

読み書きモード

AoqAudioObserverConfig

フィールド

型

デフォルト値

説明

sampleRate

int

48000

コールバック音声のサンプルレート (Hz)。レートがソースと一致しない場合、リサンプリングが実行されます。

channels

int

1

コールバックの音声チャンネル数。1 と 2 がサポートされています。このパラメーターは、サブスクライブストリームのコーデックパラメーターによって制限されます。

mode

AoqAudioObserverMode

AoqAudioObserverModeReadOnly

コールバックモード

サポートされているサンプルレート:8、12、16、24、32、44.1、48、64、88.2、96、176.4、および 192K。

AoqAudioVolumeIndicationConfig

フィールド

型

デフォルト値

説明

interval

int

0

コールバック間隔 (ミリ秒)。0 以下の値はコールバックを無効にします。0 より大きく 10 未満の値は 10 として扱われます。

smooth

int

3

ボリューム平滑化係数。値が大きいほど、出力が滑らかになります。有効な値:0 から 10。

AoqAudioVolume

フィールド

型

デフォルト値

説明

volume

int

0

平滑化された瞬時音量。有効な値:0 から 255。

オーディオファイルと外部音声ストリームの型

AoqAudioFileMixConfig

フィールド

型

デフォルト値

説明

fileName

const char\*

nullptr

ファイル名 (パスを含む)

cycles

int

-1

ループ数。-1 は無制限のループを示します。

startPosMs

long

0

再生開始位置 (ミリ秒)

publishVolume

int

100

公開ボリューム。有効な値:0 から 100。

playoutVolume

int

100

再生ボリューム。有効な値:0 から 100。

fileId は構成本体の一部ではなく、startAudioFile に別のパラメーターとして渡されます。

AoqAudioFileStateCode

列挙値

値

説明

AoqAudioFileNone

0

状態なし

AoqAudioFileStarted

1

開始済み

AoqAudioFileStopped

2

停止済み

AoqAudioFilePaused

3

一時停止

AoqAudioFileResumed

4

再開済み

AoqAudioFileEnded

5

再生完了

AoqAudioFileBuffering

6

バッファリング中

AoqAudioFileBufferingEnd

7

バッファリング終了

AoqAudioFileFailed

8

再生失敗

AoqAudioFileErrorCode

列挙値

値

説明

AoqAudioFileNoError

0

エラーなし

AoqAudioFileOpenFailed

1

ファイルのオープンに失敗しました

AoqAudioFileDecodeFailed

2

ファイルのデコードに失敗しました

AoqAudioFileState

フィールド

型

デフォルト値

説明

fileId

const char\*

nullptr

ファイル ID。コールバック中にのみ有効です。

stateCode

AoqAudioFileStateCode

AoqAudioFileNone

ファイル状態コード

errorCode

AoqAudioFileErrorCode

AoqAudioFileNoError

ファイルエラーコード

AoqAudioExternalStreamConfig

フィールド

型

デフォルト値

説明

trackType

AoqTrackType

AoqTrackTypeAudio

音声トラックタイプ

codecType

AoqEncoderType

AoqEncoderTypeAudioPCM

音声ストリームフォーマット。PCM がサポートされています。

channels

int

1

チャンネル数。公開ストリームの音声コーデックによって制限されます (1 と 2 がサポートされ、追加のチャンネルは無視されます)。

sampleRate

int

48000

サンプルレート (Hz)

playoutVolume

int

100

再生ボリューム。有効な値:0 から 100。

publishVolume

int

100

公開ボリューム。有効な値:0 から 100。

maxBufferDuration

int

600000

最大バッファー持続時間 (ミリ秒) (つまり 10 分)。有効な値:100 以上。この値を超えると、プッシュは失敗します。

enable3A

bool

false

入力 PCM に 3A 処理を適用します (Linux では効果がありません、4.3 をご参照ください)

サポートされているサンプルレート:8、12、16、24、32、44.1、48、64、88.2、96、176.4、および 192K。
streamId は構成本体の一部ではなく、addAudioExternalStream に別のパラメーターとして渡されます。

ビデオ関連の型

AoqVideoCanvas

フィールド

型

デフォルト値

説明

view

void\*

nullptr

プラットフォームネイティブのビューハンドルへの不透明ポインター。nullptr を渡してバインディングを削除します。

renderMode

AoqRenderMode

AoqRenderModeAuto

レンダリングフィルモード

view のプラットフォームの意味:Apple では NSView*、Windows では HWND、Android では SDK の内部レンダリングビューアダプターオブジェクト。view のライフサイクルが setLocalView / setRemoteView によって設定されている期間よりも長いことを確認する必要があります。
Linux には対応するプラットフォーム実装がありません。この構造体は Linux では実用的な用途がありません。

AoqVideoCaptureConfig

フィールド

型

デフォルト値

説明

width

int

1280

キャプチャ幅 (ピクセル)。isExternal=true の場合、このパラメーターは無効です。

height

int

720

キャプチャ高さ (ピクセル)。isExternal=true の場合、このパラメーターは無効です。

fps

int

15

キャプチャフレームレート。isExternal=true の場合、このパラメーターは無効です (ペースはフレーム配信によって決まります)。

isExternal

bool

false

外部キャプチャを使用するかどうかを指定します。true の場合、カメラは開かれず、フレームは pushExternalVideoCapturedFrame によって供給されます。

cameraDirection はモバイル専用フィールドであり、デスクトッププラットフォーム (Linux を含む) には存在しません。Linux では、常に isExternal = true に設定することを推奨します。

AoqVideoCodecConfig

エンコーディングとデコーディングは同じ構造を共有します。デコーディングの場合、trackType / codecType / width / height / fps / bitrate のみが有効であり、サブスクリプション提案としてネゴシエーションに参加します。minBitrate / keyframeInterval / mirrorMode / orientationMode / isExternal はエンコーディングにのみ使用されます。

フィールド

型

デフォルト値

説明

isExternal

bool

false

外部エンコーディングモード。true の場合、エンコードされたフレームをプッシュし、SDK はキャプチャやエンコーディングを実行しません。

trackType

AoqTrackType

AoqTrackTypeVideo

トラックタイプ

codecType

AoqEncoderType

AoqEncoderTypeVideoH264

エンコーディングタイプ

width

int

540

解像度の幅 (ピクセル)

height

int

960

解像度の高さ (ピクセル)

fps

int

5

フレームレート

bitrate

int

500000

初期ビットレート (bit/s)

minBitrate

int

128000

最小ビットレート (bit/s)

keyframeInterval

int

2

キーフレーム間隔 (秒)

mirrorMode

AoqMirrorMode

AoqMirrorModeDisabled

ミラーモード

orientationMode

AoqOrientationMode

AoqOrientationModeAuto

印刷の向きモード

AoqVideoPixelFormat

列挙値

値

説明

Linux でのサポート

AoqVideoPixelFormatUnknown

0

不明なフォーマット

-

AoqVideoPixelFormatI420

1

I420 (YUV プレーナ形式)

サポート

AoqVideoPixelFormatNV12

2

NV12 (YUV セミプレーナ形式)

サポート

AoqVideoPixelFormatNV21

3

NV21 (YUV セミプレーナ形式)

サポート

AoqVideoPixelFormatBGRA

4

BGRA (32 ビット)

サポート

AoqVideoPixelFormatRGBA

5

RGBA (32 ビット)

サポート

AoqVideoPixelFormatCVPixelBuffer

6

Apple プラットフォームでのみ有効

非サポート

AoqVideoPixelFormatTextureOES

7

Android 外部 OES テクスチャ

非サポート

AoqVideoPixelFormatTexture2D

8

Android 通常 2D テクスチャ

非サポート

列挙値 6/7/8 はヘッダーファイルでまだ表示されますが (条件付きコンパイルで除外されていません)、Linux には対応するプラットフォーム機能がありません。これらを渡すと、サポートされていないフォーマットとして扱われます。

AoqVideoFrame

外部の生ビデオフレーム。pushExternalVideoCapturedFrame と IVideoFrameObserver コールバックの両方で使用されます。

フィールド

型

デフォルト値

説明

format

AoqVideoPixelFormat

AoqVideoPixelFormatUnknown

ピクセルフォーマット

width

int

0

幅 (ピクセル)

height

int

0

高さ (ピクセル)

dataPtr

void\*

0

パック形式データ (NV12 / NV21 / BGRA / RGBA)

dataSize

int

0

パックデータのバイト数

dataY

void\*

0

I420 Y プレーン

dataU

void\*

0

I420 U プレーン

dataV

void\*

0

I420 V プレーン

strideY

int

0

Y プレーンのストライド

strideU

int

0

U プレーンのストライド

strideV

int

0

V プレーンのストライド

nativePixelBuffer

void\*

0

Apple ゼロコピー (CVPixelBufferRef) に使用されます。このフィールドは Linux では使用されません。

textureId

int

0

Android テクスチャ ID。このフィールドは Linux では使用されません。

transformMatrix

float 配列 (16 要素)

すべてゼロ

テクスチャ変換マトリックス (行優先 4x4)。このフィールドは Linux では使用されません。

timeStamp

int64_t

0

タイムスタンプ (ミリ秒)。0 の場合、SDK はローカル時間で埋めます。

AoqVideoCodecType

列挙値

値

説明

AoqVideoCodecTypeJPEG

0

JPEG エンコーディング

AoqVideoEncodedFrame

外部でエンコードされたビデオフレーム。呼び出し元がエンコーディングを実行し、SDK は再エンコードせずにフレームを直接パッケージ化して送信します。

フィールド

型

デフォルト値

説明

codec

AoqVideoCodecType

AoqVideoCodecTypeJPEG

コーデックフォーマット

data

void\*

nullptr

エンコードされたデータへのポインター

dataSize

int

0

エンコードされたデータのバイト数

width

int

0

幅 (ピクセル)

height

int

0

高さ (ピクセル)

timeStamp

int64_t

0

タイムスタンプ (ミリ秒)。0 の場合、SDK はローカル時間で埋めます。

AoqVideoDeviceStateCode

列挙値

値

説明

AoqVideoDeviceNone

0

状態なし

AoqVideoDeviceCaptureStarting

1

カメラ起動中

AoqVideoDeviceCaptureStarted

2

カメラ起動済み

AoqVideoDeviceCaptureStopping

3

カメラ停止中

AoqVideoDeviceCaptureStopped

4

カメラ停止済み

AoqVideoDeviceCaptureFail

5

カメラの起動に失敗しました (例:権限が拒否された、またはデバイスが利用できない)

AoqVideoDeviceState

フィールド

型

デフォルト値

説明

state

AoqVideoDeviceStateCode

AoqVideoDeviceNone

デバイスキャプチャ操作状態

reason

int

0

エラー理由コード。AoqErrorCode をご参照ください。

AoqVideoSource

列挙値

値

説明

AoqVideoSourceCaptured

0

前処理前のキャプチャされたビデオデータ

AoqVideoSourcePreEncode

1

エンコード前、前処理後のビデオデータ

AoqVideoSourceRemote

2

デコード後、レンダリング前のリモートビデオデータ

AoqVideoSourceMax

3

プレースホルダー、使用しないでください

AoqVideoObserverMode

列挙値

値

説明

AoqVideoObserverModeReadOnly

0

読み取り専用モード

AoqVideoObserverModeReadWrite

1

読み書きモード (I420 / CVPixelBuffer のみサポート)

AoqVideoObserverAlignment

列挙値

値

説明

AoqVideoObserverAlignmentDefault

0

デフォルトのアライメント

AoqVideoObserverAlignmentEven

1

偶数アライメント

AoqVideoObserverAlignment4

2

4 バイトアライメント

AoqVideoObserverAlignment8

3

8 バイトアライメント

AoqVideoObserverAlignment16

4

16 バイトアライメント

AoqVideoObserverConfig

フィールド

型

デフォルト値

説明

format

AoqVideoPixelFormat

AoqVideoPixelFormatI420

コールバックデータの期待されるピクセルフォーマット

alignment

AoqVideoObserverAlignment

AoqVideoObserverAlignmentDefault

幅のアライメントポリシー

mode

AoqVideoObserverMode

AoqVideoObserverModeReadOnly

コールバックモード。ReadWrite は I420 / CVPixelBuffer のみサポートされます。

mirrorApplied

bool

false

コールバックデータをミラーリングするかどうかを指定します