Skip to main content

AOQ Client SDK macOS API 參考

本文介紹 AOQ Client SDK macOS 版的 Objective-C 介面、回調和資料類型,協助您在 macOS 應用中接入即時音視頻和資料訊息能力。

SDK 以全域單例方式持有引擎執行個體,通過 AoqClientEngine 類對外提供介面,通過 AoqEngineDelegate 協議統一回調非同步事件。

介面目錄

引擎生命週期

介面

簡介

createEngine:delegate:

建立引擎執行個體(單例模式)

destroy

銷毀引擎執行個體

getVersion

擷取 SDK 版本號碼

connect:

串連 Relay 伺服器

disconnect

斷開伺服器串連

音訊裝置管理

介面

簡介

startAudioCapture:

開啟音頻採集裝置(麥克風)

stopAudioCapture

關閉音頻採集裝置

muteAudioCapture:

靜音或取消靜音音頻採集

startAudioPlayer:

開始音頻渲染(播放遠端音頻)

stopAudioPlayer

停止音頻渲染

pauseAudioPlayer:

暫停音頻渲染(支援淡出)

resumeAudioPlayer:

恢複音頻渲染(支援淡入)

interruptAudioPlayer:fadeMs:

打斷本輪語音通話

enableLocalAudioVolumeIndication:

開啟或關閉本地採集音量提示

音頻編碼配置

介面

簡介

setAudioEncoderConfig:

設定音頻編碼參數

setAudioDecoderConfig:

設定音頻解碼參數

視頻裝置管理

介面

簡介

startVideoCapture:

開啟視頻採集裝置(網路攝影機)

stopVideoCapture

關閉視頻採集裝置

setLocalView:canvas:

設定或移除本地視頻渲染視窗

setRemoteView:canvas:

設定或移除遠端視頻渲染視窗

視頻編碼與外部輸入

介面

簡介

setVideoEncoderConfig:

設定視頻編碼參數

setVideoDecoderConfig:

設定視頻解碼參數

pushExternalVideoCapturedFrame:frame:

推送外部採集視訊框架

pushExternalVideoEncodedFrame:frame:

推送外部已編碼視訊框架

媒體流發送控制

介面

簡介

enableSendMediaStream:enable:

控制本地媒體流的發送開關

音頻檔案播放

介面

簡介

startAudioFile:config:

開始推流播放本地音頻檔案

stopAudioFile:

停止音頻檔案播放

pauseAudioFile:

暫停音頻檔案播放

resumeAudioFile:

恢複音頻檔案播放

getAudioFileDuration:

擷取音頻檔案總時間長度

getAudioFileCurrentPosition:

擷取音頻檔案當前播放位置

setAudioFilePositionMillis:positionMillis:

設定音頻檔案播放位置(seek)

setAudioFileVolume:type:volume:

設定音頻檔案音量

getAudioFileVolume:type:

擷取音頻檔案當前音量

外部音頻流

介面

簡介

addAudioExternalStream:config:

新增一條外部音頻流

pushAudioExternalStreamData:data:

輸入外部音頻 PCM 資料

setAudioExternalStreamVolume:type:volume:

設定外部音頻流音量

getAudioExternalStreamVolume:type:

擷取外部音頻流音量

clearAudioExternalStreamBuffer:fadeoutMs:

清空外部音頻流緩衝

removeAudioExternalStream:

移除外部音頻流

即時訊息

介面

簡介

sendDataMsg:

發送即時資料訊息

音訊框架回調

介面

簡介

setAudioFrameObserver:

設定音訊框架資料回調監聽

enableAudioFrameObserver:audioSource:config:

開啟或關閉指定位置的音訊框架回調

視訊框架回調

介面

簡介

setVideoFrameObserver:

設定視訊框架資料回調監聽

enableVideoFrameObserver:videoSource:config:

開啟或關閉指定位置的視訊框架回調

AoqEngineDelegate 回調

回調

簡介

onError:message:

引擎錯誤回調

onWarning:message:

引擎警告回調

onConnectionStatusChange:

串連狀態變化回調

onStats:

引擎統計資訊回調

onAudioDeviceStateChanged:

音訊裝置操作狀態變化回調

onAudioDeviceRouteChanged:

音訊輸出路由變化回調

onAudioFileState:

音頻檔案播放狀態回調

onLocalAudioVolumeIndication:

本地採集音量提示回調

onVideoDeviceStateChanged:

視頻裝置操作狀態變化回調

onDataMsg:

收到即時資料訊息回調

介面詳情

引擎生命週期

createEngine:delegate:

建立引擎執行個體。SDK 內部以全域單例方式持有引擎,重複調用會返回已建立的執行個體。
+ (instancetype _Nonnull)createEngine:(AoqCreateConfig * _Nonnull)config
                             delegate:(id<AoqEngineDelegate> _Nonnull)delegate;
參數

參數

類型

說明

config

AoqCreateConfig *

引擎建立配置,詳見 AoqCreateConfig

delegate

id<AoqEngineDelegate>

引擎事件回調委託,詳見 AoqEngineDelegate

傳回值:引擎執行個體,不會返回 nil。

destroy

銷毀引擎執行個體。銷毀後需重新調用 createEngine:delegate: 方可繼續使用。
+ (int)destroy;
傳回值:0 表示成功;非 0 表示失敗。

getVersion

擷取 SDK 的版本號碼。
+ (NSString * _Nonnull)getVersion;
傳回值:版本號碼字串。

connect:

串連 Relay 伺服器。業務 AppServer 應根據所用協議擷取臨時 AOQ 串連參數並下發給用戶端,具體操作請參見Token 鑒權。
- (int)connect:(AoqConnectConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqConnectConfig *

串連鑒權配置,詳見 AoqConnectConfig

傳回值:0 表示調用已下發(非同步執行);非 0 表示參數校正失敗。

disconnect

斷開伺服器串連。
- (int)disconnect;
傳回值:0 表示調用已下發(非同步執行);非 0 表示失敗。

音訊裝置管理

startAudioCapture:

開啟音頻採集裝置(麥克風)。
- (int)startAudioCapture:(AoqAudioCaptureConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqAudioCaptureConfig *

音頻採集配置,詳見 AoqAudioCaptureConfig

傳回值:0 表示成功;非 0 表示失敗。

stopAudioCapture

關閉音頻採集裝置。
- (int)stopAudioCapture;
傳回值:0 表示成功;非 0 表示失敗。

muteAudioCapture:

靜音或取消靜音音頻採集。
- (int)muteAudioCapture:(BOOL)mute;
參數

參數

類型

說明

mute

BOOL

YES 靜音;NO 取消靜音

傳回值:0 表示成功;非 0 表示失敗。

startAudioPlayer:

開始音頻渲染,播放遠端音頻。
- (int)startAudioPlayer:(AoqAudioPlaybackConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqAudioPlaybackConfig *

音頻播放配置,詳見 AoqAudioPlaybackConfig

傳回值:0 表示成功;非 0 表示失敗。

stopAudioPlayer

停止音頻渲染。
- (int)stopAudioPlayer;
傳回值:0 表示成功;非 0 表示失敗。

pauseAudioPlayer:

暫停音頻渲染,支援淡出。
- (int)pauseAudioPlayer:(NSInteger)fadeMs;
參數

參數

類型

說明

fadeMs

NSInteger

淡出時間長度,單位毫秒;0 表示立即暫停

傳回值:0 表示成功;非 0 表示失敗。

resumeAudioPlayer:

恢複音頻渲染,支援淡入。
- (int)resumeAudioPlayer:(NSInteger)fadeMs;
參數

參數

類型

說明

fadeMs

NSInteger

淡入時間長度,單位毫秒;0 表示立即恢複

傳回值:0 表示成功;非 0 表示失敗。

interruptAudioPlayer:fadeMs:

打斷本輪語音通話,停止當前現正播放的音頻內容。
- (int)interruptAudioPlayer:(AoqTrackType)trackType fadeMs:(NSInteger)fadeMs;
參數

參數

類型

說明

trackType

AoqTrackType

音軌類型,詳見 AoqTrackType

fadeMs

NSInteger

淡出時間長度,單位毫秒;0 表示立即打斷

傳回值:0 表示成功;非 0 表示失敗。

enableLocalAudioVolumeIndication:

開啟或關閉本地採集音量提示。開啟後按 config.interval 周期觸發 onLocalAudioVolumeIndication: 回調;config.interval <= 0 時關閉回調。需在 startAudioCapture: 之後調用才有音量資料。
- (int)enableLocalAudioVolumeIndication:(AoqAudioVolumeIndicationConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqAudioVolumeIndicationConfig *

音量提示配置,詳見 AoqAudioVolumeIndicationConfig

傳回值:0 表示成功;非 0 表示失敗。

音頻編碼配置

setAudioEncoderConfig:

設定音頻編碼參數。
- (int)setAudioEncoderConfig:(AoqAudioCodecConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqAudioCodecConfig *

音頻編解碼配置,詳見 AoqAudioCodecConfig

傳回值:0 表示成功;非 0 表示失敗。

setAudioDecoderConfig:

設定音頻解碼參數。
- (int)setAudioDecoderConfig:(AoqAudioCodecConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqAudioCodecConfig *

音頻編解碼配置,詳見 AoqAudioCodecConfig

傳回值:0 表示成功;非 0 表示失敗。

視頻裝置管理

startVideoCapture:

開啟視頻採集裝置(網路攝影機)。配置 isExternal=YES 時不開啟網路攝影機,由 pushExternalVideoCapturedFrame:frame: 喂幀。
- (int)startVideoCapture:(AoqVideoCaptureConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqVideoCaptureConfig *

視頻採集配置,詳見 AoqVideoCaptureConfig

傳回值:0 表示成功;非 0 表示失敗。

stopVideoCapture

關閉視頻採集裝置。
- (int)stopVideoCapture;
傳回值:0 表示成功;非 0 表示失敗。

setLocalView:canvas:

設定或移除本地視頻渲染視窗。canvas 傳 nil 或 canvas.view 為 nil 表示解除綁定。
- (int)setLocalView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;
參數

參數

類型

說明

trackType

AoqTrackType

視頻軌道,傳 AoqTrackTypeVideo

canvas

AoqVideoCanvas *

渲染畫布,詳見 AoqVideoCanvas;傳 nil 表示解除綁定

傳回值:0 表示成功;非 0 表示失敗。

setRemoteView:canvas:

設定或移除遠端視頻渲染視窗。canvas 傳 nil 或 canvas.view 為 nil 表示解除綁定。
- (int)setRemoteView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;
參數

參數

類型

說明

trackType

AoqTrackType

視頻軌道,傳 AoqTrackTypeVideo

canvas

AoqVideoCanvas *

渲染畫布,詳見 AoqVideoCanvas;傳 nil 表示解除綁定

傳回值:0 表示成功;非 0 表示失敗。

視頻編碼與外部輸入

setVideoEncoderConfig:

設定視頻編碼參數,按 config.trackType 路由。
- (int)setVideoEncoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqVideoCodecConfig *

視頻編解碼配置,詳見 AoqVideoCodecConfig

傳回值:0 表示成功;非 0 表示失敗。

setVideoDecoderConfig:

設定視頻解碼參數(訂閱側 codec 提議,需在 connect: 之前調用),按 config.trackType 路由。
- (int)setVideoDecoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
參數

參數

類型

說明

config

AoqVideoCodecConfig *

視頻編解碼配置,詳見 AoqVideoCodecConfig

傳回值:0 表示成功;非 0 表示失敗。

pushExternalVideoCapturedFrame:frame:

推送外部視訊框架。需先調用 startVideoCapture: 且配置 isExternal=YES,未啟動外部視頻採集或格式不支援時返回 AoqECParamInvalid。
- (int)pushExternalVideoCapturedFrame:(AoqTrackType)trackType
                                frame:(AoqVideoFrame * _Nonnull)frame;
參數

參數

類型

說明

trackType

AoqTrackType

路由目標,傳 AoqTrackTypeVideo

frame

AoqVideoFrame *

外部視訊框架資料,詳見 AoqVideoFrame

傳回值:0 表示成功;AoqECVideoExternalBufferFull(210)表示緩衝區滿;<0 表示其他錯誤。

pushExternalVideoEncodedFrame:frame:

推送外部已編碼視訊框架,bypass 編碼器直推。需先調用 setVideoEncoderConfig: 且配置 isExternal=YES,當前僅支援 JPEG。
- (int)pushExternalVideoEncodedFrame:(AoqTrackType)trackType
                               frame:(AoqVideoEncodedFrame * _Nonnull)frame;
參數

參數

類型

說明

trackType

AoqTrackType

路由目標,傳 AoqTrackTypeVideo

frame

AoqVideoEncodedFrame *

外部已編碼幀資料,詳見 AoqVideoEncodedFrame

傳回值:0 表示成功;非 0 表示失敗。

媒體流發送控制

enableSendMediaStream:enable:

控制本地媒體流的發送開關。建議初始化後先關閉發送,待 onConnectionStatusChange: 回調 AoqConnectionStatusConnected 後再開啟。
- (int)enableSendMediaStream:(AoqTrackType)trackType enable:(BOOL)enable;
參數

參數

類型

說明

trackType

AoqTrackType

路由目標,支援 AoqTrackTypeAudio / AoqTrackTypeVideo

enable

BOOL

YES 啟用發送;NO 停用發送

傳回值:0 表示調用已下發(非同步執行);非 0 表示失敗。

音頻檔案播放

startAudioFile:config:

開始推流播放本地音頻檔案。
- (int)startAudioFile:(NSString * _Nonnull)fileId
               config:(AoqAudioFileMixConfig * _Nonnull)config;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID,業務層需保證唯一性

config

AoqAudioFileMixConfig *

音頻檔案混音配置,詳見 AoqAudioFileMixConfig

傳回值:0 表示成功;非 0 表示失敗。

stopAudioFile:

停止音頻檔案播放。
- (int)stopAudioFile:(NSString * _Nonnull)fileId;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

傳回值:0 表示成功;非 0 表示失敗。

pauseAudioFile:

暫停音頻檔案播放。
- (int)pauseAudioFile:(NSString * _Nonnull)fileId;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

傳回值:0 表示成功;非 0 表示失敗。

resumeAudioFile:

恢複音頻檔案播放。
- (int)resumeAudioFile:(NSString * _Nonnull)fileId;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

傳回值:0 表示成功;非 0 表示失敗。

getAudioFileDuration:

擷取音頻檔案總時間長度。
- (long long)getAudioFileDuration:(NSString * _Nonnull)fileId;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

傳回值:>=0 表示音頻檔案時間長度,單位毫秒;<0 表示失敗。

getAudioFileCurrentPosition:

擷取音頻檔案當前播放位置。
- (long long)getAudioFileCurrentPosition:(NSString * _Nonnull)fileId;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

傳回值:>=0 表示當前播放位置,單位毫秒;<0 表示失敗。

setAudioFilePositionMillis:positionMillis:

設定音頻檔案播放位置(seek)。
- (int)setAudioFilePositionMillis:(NSString * _Nonnull)fileId
                  positionMillis:(long long)positionMillis;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

positionMillis

long long

播放位置,單位毫秒

傳回值:0 表示成功;非 0 表示失敗。

setAudioFileVolume:type:volume:

設定音頻檔案音量。
- (int)setAudioFileVolume:(NSString * _Nonnull)fileId
                     type:(AoqAudioStreamDirection)type
                   volume:(NSInteger)volume;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

type

AoqAudioStreamDirection

音頻流方向,詳見 AoqAudioStreamDirection

volume

NSInteger

音量值,範圍 [0, 100]

傳回值:0 表示成功;非 0 表示失敗。

getAudioFileVolume:type:

擷取音頻檔案當前音量。
- (int)getAudioFileVolume:(NSString * _Nonnull)fileId
                     type:(AoqAudioStreamDirection)type;
參數

參數

類型

說明

fileId

NSString *

音頻檔案 ID

type

AoqAudioStreamDirection

音頻流方向,詳見 AoqAudioStreamDirection

傳回值:[0, 100] 表示音量值;<0 表示失敗。

外部音頻流

addAudioExternalStream:config:

新增一條外部音頻流。
- (int)addAudioExternalStream:(NSString * _Nonnull)streamId
                       config:(AoqAudioExternalStreamConfig * _Nonnull)config;
參數

參數

類型

說明

streamId

NSString *

外部音頻流 ID,業務層需保證唯一性

config

AoqAudioExternalStreamConfig *

外部音頻流配置,詳見 AoqAudioExternalStreamConfig

傳回值:0 表示成功;非 0 表示失敗。

pushAudioExternalStreamData:data:

輸入外部音頻 PCM 資料。返回 AoqECAudioExternalBufferFull(110)時表示 SDK 緩衝已滿,建議等待約 20ms 後重新送當前資料幀。
- (int)pushAudioExternalStreamData:(NSString * _Nonnull)streamId
                              data:(AoqAudioFrameData * _Nonnull)data;
參數

參數

類型

說明

streamId

NSString *

外部音頻流 ID

data

AoqAudioFrameData *

外部音頻裸資料,詳見 AoqAudioFrameData

傳回值:0 表示成功;非 0 表示失敗。
最佳實務:即時採集情境一次 Push 10ms 資料長度,有資料即 Push;資料來源為檔案時一次 Push 40ms 資料長度、間隔 30ms 給一次,並處理 AoqECAudioExternalBufferFull 返回。

setAudioExternalStreamVolume:type:volume:

設定外部音頻流音量。
- (int)setAudioExternalStreamVolume:(NSString * _Nonnull)streamId
                               type:(AoqAudioStreamDirection)type
                             volume:(NSInteger)volume;
參數

參數

類型

說明

streamId

NSString *

外部音頻流 ID

type

AoqAudioStreamDirection

外部音頻流類型,詳見 AoqAudioStreamDirection

volume

NSInteger

音量值,範圍 [0, 100]

傳回值:0 表示成功;非 0 表示失敗。

getAudioExternalStreamVolume:type:

擷取外部音頻流音量。
- (int)getAudioExternalStreamVolume:(NSString * _Nonnull)streamId
                               type:(AoqAudioStreamDirection)type;
參數

參數

類型

說明

streamId

NSString *

外部音頻流 ID

type

AoqAudioStreamDirection

外部音頻流類型,詳見 AoqAudioStreamDirection

傳回值:[0, 100] 表示音量值;<0 表示失敗。

clearAudioExternalStreamBuffer:fadeoutMs:

清空外部音頻流緩衝。
- (void)clearAudioExternalStreamBuffer:(NSString * _Nonnull)streamId
                              fadeoutMs:(NSInteger)fadeoutMs;
參數

參數

類型

說明

streamId

NSString *

外部音頻流 ID

fadeoutMs

NSInteger

淡出時間長度;-1 使用 SDK 內部預設淡出,0 表示全部清空無淡出,>0 保留指定毫秒淡出

傳回值:無。

removeAudioExternalStream:

移除外部音頻流。
- (int)removeAudioExternalStream:(NSString * _Nonnull)streamId;
參數

參數

類型

說明

streamId

NSString *

外部音頻流 ID

傳回值:0 表示成功;非 0 表示失敗。

即時訊息

sendDataMsg:

發送即時資料訊息。
- (int)sendDataMsg:(AoqDataMsg * _Nonnull)msg;
參數

參數

類型

說明

msg

AoqDataMsg *

訊息內容,詳見 AoqDataMsg

傳回值:0 表示成功;非 0 表示失敗。

音訊框架回調

setAudioFrameObserver:

設定音訊框架資料回調委託,傳 nil 停止回調。設定後需調用 enableAudioFrameObserver:audioSource:config: 開啟對應資料來源的回調。
- (int)setAudioFrameObserver:(id<AoqAudioFrameDelegate> _Nullable)delegate;
參數

參數

類型

說明

delegate

id<AoqAudioFrameDelegate>

音訊框架回調委託,詳見 AoqAudioFrameDelegate;傳 nil 停止回調

傳回值:0 表示成功;非 0 表示失敗。

enableAudioFrameObserver:audioSource:config:

開啟或關閉指定位置的音訊框架回調。
- (int)enableAudioFrameObserver:(BOOL)enabled
                   audioSource:(AoqAudioSource)audioSource
                        config:(AoqAudioObserverConfig * _Nonnull)config;
參數

參數

類型

說明

enabled

BOOL

是否允許資料回調

audioSource

AoqAudioSource

音頻裸資料來源類型,詳見 AoqAudioSource

config

AoqAudioObserverConfig *

回調參數設定,詳見 AoqAudioObserverConfig

傳回值:0 表示成功;非 0 表示失敗。

視訊框架回調

setVideoFrameObserver:

設定視訊框架資料回調委託,傳 nil 停止回調。設定後需調用 enableVideoFrameObserver:videoSource:config: 開啟對應資料來源的回調。
- (int)setVideoFrameObserver:(id<AoqVideoFrameDelegate> _Nullable)delegate;
參數

參數

類型

說明

delegate

id<AoqVideoFrameDelegate>

視訊框架回調委託,詳見 AoqVideoFrameDelegate;傳 nil 停止回調

傳回值:0 表示成功;非 0 表示失敗。

enableVideoFrameObserver:videoSource:config:

開啟或關閉指定位置的視訊框架回調。
- (int)enableVideoFrameObserver:(BOOL)enabled
                    videoSource:(AoqVideoSource)videoSource
                         config:(AoqVideoObserverConfig * _Nonnull)config;
參數

參數

類型

說明

enabled

BOOL

是否啟用某位置資料回調

videoSource

AoqVideoSource

視訊框架回調資料來源(管線位置),詳見 AoqVideoSource

config

AoqVideoObserverConfig *

回調參數設定,詳見 AoqVideoObserverConfig

傳回值:0 表示成功;非 0 表示失敗。

回調

AoqEngineDelegate

AoqEngineDelegate 是 SDK 所有非同步事件通知的統一出口,在 createEngine:delegate: 時傳入。所有回調方法均為 @required。串連狀態流轉:Disconnected → Connecting → Connected/Failed → Disconnected。

onError:message:

引擎錯誤回調。
- (void)onError:(NSInteger)code message:(NSString * _Nonnull)message;
參數

參數

類型

說明

code

NSInteger

錯誤碼,詳見 AoqErrorCode

message

NSString *

錯誤描述

onWarning:message:

引擎警告回調。
- (void)onWarning:(NSInteger)code message:(NSString * _Nonnull)message;
參數

參數

類型

說明

code

NSInteger

警告碼,詳見 AoqWarningCode

message

NSString *

警告描述

onConnectionStatusChange:

引擎串連狀態變化回調。
- (void)onConnectionStatusChange:(AoqConnectionStatus)status;
參數

參數

類型

說明

status

AoqConnectionStatus

串連狀態,詳見 AoqConnectionStatus

onStats:

引擎統計資訊回調。
- (void)onStats:(AoqStats * _Nonnull)stats;
參數

參數

類型

說明

stats

AoqStats *

統計資料,詳見 AoqStats

onAudioDeviceStateChanged:

音訊裝置採集 / 播放操作狀態變化回調。
- (void)onAudioDeviceStateChanged:(AoqAudioDeviceState * _Nonnull)state;
參數

參數

類型

說明

state

AoqAudioDeviceState *

音訊裝置狀態,詳見 AoqAudioDeviceState

onAudioDeviceRouteChanged:

音訊輸出路由變化回調。
- (void)onAudioDeviceRouteChanged:(NSInteger)routeType;
參數

參數

類型

說明

routeType

NSInteger

路由類型,取值詳見 AoqAudioDeviceRouteType

onAudioFileState:

音頻檔案播放狀態回調。
- (void)onAudioFileState:(AoqAudioFileState * _Nonnull)state;
參數

參數

類型

說明

state

AoqAudioFileState *

檔案播放狀態,詳見 AoqAudioFileState

onLocalAudioVolumeIndication:

本地採集音量提示回調,需調用 enableLocalAudioVolumeIndication: 開啟。
- (void)onLocalAudioVolumeIndication:(AoqAudioVolume * _Nonnull)volume;
參數

參數

類型

說明

volume

AoqAudioVolume *

本地音量資訊,詳見 AoqAudioVolume

onVideoDeviceStateChanged:

視頻裝置採集操作狀態變化回調。
- (void)onVideoDeviceStateChanged:(AoqVideoDeviceState * _Nonnull)state;
參數

參數

類型

說明

state

AoqVideoDeviceState *

視頻裝置狀態,詳見 AoqVideoDeviceState

onDataMsg:

收到即時資料訊息回調。
- (void)onDataMsg:(AoqDataMsg * _Nonnull)msg;
參數

參數

類型

說明

msg

AoqDataMsg *

資料訊息,詳見 AoqDataMsg

AoqAudioFrameDelegate

音訊框架資料回調協議,所有方法均為 @optional。請不要在回調中做任何耗時操作,否則可能導致聲音異常。

onCapturedAudioFrame:

採集裸資料回調。通過 enableAudioFrameObserver: 設定 audioSource = AoqAudioSourceCaptured 開啟,支援設定採樣率、聲道數,支援讀寫入模式。
- (void)onCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
參數

參數

類型

說明

frame

AoqAudioFrameData *

採集音頻裸資料,詳見 AoqAudioFrameData

onProcessCapturedAudioFrame:

3A 後資料回調。通過 enableAudioFrameObserver: 設定 audioSource = AoqAudioSourceProcessCaptured 開啟,支援設定採樣率、聲道數,支援讀寫入模式。
- (void)onProcessCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
參數

參數

類型

說明

frame

AoqAudioFrameData *

3A 處理後音頻裸資料,詳見 AoqAudioFrameData

onPublishAudioFrame:frame:

推流資料回調。通過 enableAudioFrameObserver: 設定 audioSource = AoqAudioSourcePublish 開啟,支援設定採樣率、聲道數,僅支援唯讀模式。
- (void)onPublishAudioFrame:(AoqTrackType)trackType
                      frame:(AoqAudioFrameData * _Nonnull)frame;
參數

參數

類型

說明

trackType

AoqTrackType

音軌類型,詳見 AoqTrackType

frame

AoqAudioFrameData *

推流音頻裸資料,詳見 AoqAudioFrameData

onPlaybackAudioFrame:

播放資料回調。通過 enableAudioFrameObserver: 設定 audioSource = AoqAudioSourcePlayback 開啟,支援設定採樣率、聲道數,支援讀寫入模式。
- (void)onPlaybackAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
參數

參數

類型

說明

frame

AoqAudioFrameData *

播放音頻裸資料,詳見 AoqAudioFrameData

AoqVideoFrameDelegate

視訊框架資料回調協議,所有方法均為 @optional。請不要在回調中做任何耗時操作,否則可能導致畫面卡頓。回調返回 YES 表示資料已修改、需寫回 SDK(寫回僅對 I420 / CVPixelBuffer 生效);返回 NO 表示唯讀。frame 中的資料僅在回調期間有效,非同步使用需自行拷貝。

onCapturedVideoFrame:

本地採集後裸資料回調(前處理前)。通過 enableVideoFrameObserver: 設定 videoSource = AoqVideoSourceCaptured 開啟。
- (BOOL)onCapturedVideoFrame:(AoqVideoFrame * _Nonnull)frame;
參數

參數

類型

說明

frame

AoqVideoFrame *

採集視訊框架資料,詳見 AoqVideoFrame

傳回值:YES 資料已修改、需寫回 SDK;NO 唯讀。

onPreEncodeVideoFrame:frame:

本地編碼前裸資料回調(前處理後)。通過 enableVideoFrameObserver: 設定 videoSource = AoqVideoSourcePreEncode 開啟。
- (BOOL)onPreEncodeVideoFrame:(AoqTrackType)trackType
                        frame:(AoqVideoFrame * _Nonnull)frame;
參數

參數

類型

說明

trackType

AoqTrackType

視頻軌道類型,詳見 AoqTrackType

frame

AoqVideoFrame *

編碼前視訊框架資料,詳見 AoqVideoFrame

傳回值:YES 資料已修改、需寫回 SDK;NO 唯讀。

onRemoteVideoFrame:frame:

遠端解碼後、渲染前裸資料回調。通過 enableVideoFrameObserver: 設定 videoSource = AoqVideoSourceRemote 開啟。
- (BOOL)onRemoteVideoFrame:(AoqTrackType)trackType
                     frame:(AoqVideoFrame * _Nonnull)frame;
參數

參數

類型

說明

trackType

AoqTrackType

視頻軌道類型,詳見 AoqTrackType

frame

AoqVideoFrame *

遠端視訊框架資料,詳見 AoqVideoFrame

傳回值:YES 資料已修改、需寫回 SDK;NO 唯讀。

資料類型與枚舉

通用類型

AoqCreateConfig

引擎建立配置。

欄位

類型

預設值

說明

workDir

NSString *

""

SDK 工作目錄

enableDumpAudio

BOOL

NO

是否開啟音頻未經處理資料 dump(調試用)

extras

NSString *

""

擴充參數

AoqConnectConfig

串連 Relay 伺服器配置。

欄位

類型

說明

token

NSString *

串連鑒權 Token

sid

NSString *

會話 ID

certFingerprint

NSString *

伺服器憑證指紋

relayEndpoints

NSArray<AoqRelayEndpoint *> *

Relay 存取點列表

workspaceIdHash

NSString *

工作空間雜湊 ID

publishTracks

NSArray<AoqTrackParam *> *

本端推流 track 屬性數組

subscribeTracks

NSArray<AoqTrackParam *> *

本端拉流 track 屬性數組

AoqRelayEndpoint

Relay 存取點。

欄位

類型

預設值

說明

routeIndex

NSInteger

-1

路徑序號

endpoint

NSString *

""

服務端地址(網域名稱或 IP)

port

NSInteger

0

服務端連接埠

AoqTrackParam

track 屬性。

欄位

類型

預設值

說明

trackType

AoqTrackType

Audio

track 類型

trackMode

AoqTrackMode

Segment

流式與非流式模式,僅對音頻下行生效

AoqDataMsg

即時訊息資料結構。

欄位

類型

說明

data

NSData *

訊息內容,指向調用方持有的記憶體

統計資訊類型

AoqStats

引擎統計資訊。

欄位

類型

說明

audioPublishStats

NSArray<AoqAudioPublishStats *> *

音頻推流統計數組

videoPublishStats

NSArray<AoqVideoPublishStats *> *

視頻推流統計數組

dataMsgPublishStats

NSArray<AoqDataMsgPublishStats *> *

資料訊息推流統計數組

audioSubscribeStats

NSArray<AoqAudioSubscribeStats *> *

音頻拉流統計數組

videoSubscribeStats

NSArray<AoqVideoSubscribeStats *> *

視頻拉流統計數組

dataMsgSubscribeStats

NSArray<AoqDataMsgSubscribeStats *> *

資料訊息拉流統計數組

networkStats

AoqNetworkStats *

網路統計資訊

AoqNetworkStats

網路統計資訊。

欄位

類型

說明

sendBitrate

NSUInteger

發送碼率(bps)

sendBytes

NSUInteger

累計發送位元組數

recvBitrate

NSUInteger

接收碼率(bps)

recvBytes

NSUInteger

累計接收位元組數

loss

NSUInteger

丟包率(0-100)

rtt

NSUInteger

往返延遲(ms)

AoqAudioPublishStats

音頻推流統計資訊。

欄位

類型

說明

trackType

AoqTrackType

軌道類型

bitrate

NSUInteger

碼率(bps)

bytes

NSUInteger

累計位元組數

encodeVolume

NSUInteger

推流編碼音量

AoqVideoPublishStats

視頻推流統計資訊。

欄位

類型

說明

trackType

AoqTrackType

軌道類型

bitrate

NSUInteger

碼率(bps)

bytes

NSUInteger

累計位元組數

encodeFps

NSUInteger

編碼幀率

AoqDataMsgPublishStats

資料訊息推流統計資訊。

欄位

類型

說明

trackType

AoqTrackType

軌道類型

bitrate

NSUInteger

碼率(bps)

bytes

NSUInteger

累計位元組數

AoqAudioSubscribeStats

音頻拉流統計資訊。

欄位

類型

說明

trackType

AoqTrackType

軌道類型

bitrate

NSUInteger

碼率(bps)

bytes

NSUInteger

累計位元組數

playVolume

NSUInteger

播放音量

AoqVideoSubscribeStats

視頻拉流統計資訊。

欄位

類型

說明

trackType

AoqTrackType

軌道類型

bitrate

NSUInteger

碼率(bps)

bytes

NSUInteger

累計位元組數

decodeFps

NSUInteger

解碼幀率

renderFps

NSUInteger

渲染幀率

AoqDataMsgSubscribeStats

資料訊息拉流統計資訊。

欄位

類型

說明

trackType

AoqTrackType

軌道類型

bitrate

NSUInteger

碼率(bps)

bytes

NSUInteger

累計位元組數

枚舉類型

AoqErrorCode

錯誤碼枚舉。

枚舉值

值

說明

AoqECOK

0

成功

AoqECParamInvalid

1

參數非法

AoqECStateInvalid

2

狀態非法

AoqECUnSupport

3

介面不支援

AoqECAudio

100

音頻通用錯誤

AoqECAudioExternalBufferFull

110

外部音頻緩衝區滿

AoqECAudioDevice

120

音訊裝置通用錯誤

AoqECAudioDeviceRecordingAuthFailed

121

錄音許可權未擷取

AoqECAudioDeviceRecordingOccupied

122

錄音裝置被佔用

AoqECAudioDeviceRecordingBackgroundStart

123

後台啟動錄音

AoqECAudioDeviceRecordingStartFail

124

錄音啟動失敗

AoqECAudioDevicePlayoutOccupied

125

播放裝置被佔用

AoqECAudioDevicePlayoutBackgroundStart

126

後台啟動播放

AoqECAudioDevicePlayoutStartFail

127

播放啟動失敗

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

視頻渲染降級

AoqTrackType

軌道類型。

枚舉值

值

說明

AoqTrackTypeAudio

0

音頻軌道

AoqTrackTypeVideo

1

視頻軌道

AoqTrackTypeData

2

資料訊息軌道

AoqEncoderType

編碼器類型。

枚舉值

值

說明

AoqEncoderTypeUnknown

0

未知格式

AoqEncoderTypeAudioPCM

1

音頻 PCM

AoqEncoderTypeAudioOpus

2

音頻 Opus

AoqEncoderTypeVideoH264

3

視頻 H.264

AoqEncoderTypeVideoJpeg

4

視頻 JPEG

AoqEncoderTypeDataText

5

資料文本

AoqTrackMode

流式與非流式模式,僅對音頻下行生效。

枚舉值

值

說明

AoqTrackModeSegment

0

分段:資料按語義片段(如一句話)打包送達

AoqTrackModeStream

1

流式:資料持續、連續地送達

AoqConnectionStatus

引擎串連狀態。

枚舉值

值

說明

AoqConnectionStatusDisconnected

0

未串連

AoqConnectionStatusConnecting

1

串連中

AoqConnectionStatusConnected

2

已串連

AoqConnectionStatusFailed

3

串連失敗

音訊類型

AoqAudioCaptureConfig

音頻採集配置。

欄位

類型

預設值

說明

isExternal

BOOL

NO

是否外部採集

channel

NSInteger

1

音頻採集通道數,支援 1/2

AoqAudioPlaybackConfig

音頻播放配置。

欄位

類型

預設值

說明

isExternal

BOOL

NO

是否外部播放

channel

NSInteger

1

音頻播放通道數,支援 1/2

AoqAudioCodecConfig

音頻編解碼配置。

欄位

類型

預設值

說明

trackType

AoqTrackType

Audio

軌道類型

codecType

AoqEncoderType

AudioPCM

編碼格式

sampleRate

NSInteger

48000

採樣率(Hz)

channel

NSInteger

1

聲道數

bitrate

NSInteger

32000

位元速率(bps)

AoqAudioDeviceState

音訊裝置狀態。

欄位

類型

說明

state

AoqAudioDeviceStateCode

狀態代碼

reason

NSInteger

錯誤碼(AoqErrorCode)

AoqAudioDeviceStateCode

音訊裝置狀態代碼。

枚舉值

值

說明

AoqAudioDeviceNone

0

無狀態

AoqAudioDeviceRecordStarting

1

採集正在啟動

AoqAudioDeviceRecordStarted

2

採集已啟動

AoqAudioDeviceRecordStopping

3

採集正在停止

AoqAudioDeviceRecordStopped

4

採集已停止

AoqAudioDeviceRecordFail

5

採集失敗

AoqAudioDevicePlayStarting

6

播放正在啟動

AoqAudioDevicePlayStarted

7

播放已啟動

AoqAudioDevicePlayStopping

8

播放正在停止

AoqAudioDevicePlayStopped

9

播放已停止

AoqAudioDevicePlayFail

10

播放失敗

AoqAudioDeviceRouteType

音訊裝置路由類型。

枚舉值

值

說明

AoqAudioDeviceRouteDefault

0

預設

AoqAudioDeviceRouteHeadset

1

耳機

AoqAudioDeviceRouteEarpiece

2

耳機

AoqAudioDeviceRouteHeadsetNoMic

3

無麥耳機

AoqAudioDeviceRouteSpeakerPhone

4

內建擴音器

AoqAudioDeviceRouteUsb

5

USB

AoqAudioDeviceRouteBluetooth

6

藍芽

AoqAudioDeviceRouteBluetoothA2dp

7

藍芽 A2DP

AoqAudioFileMixConfig

音頻檔案推流播放配置。

欄位

類型

預設值

說明

fileName

NSString *

-

檔案名稱(含路徑),必填

cycles

NSInteger

-1

迴圈次數,-1 表示無限迴圈

startPosMs

NSInteger

0

起始播放位置(ms)

publishVolume

NSInteger

100

推流音量,範圍 [0, 100]

playoutVolume

NSInteger

100

播放音量,範圍 [0, 100]

AoqAudioFileState

音頻檔案狀態。

欄位

類型

說明

fileId

NSString *

檔案 ID

stateCode

AoqAudioFileStateCode

狀態代碼

errorCode

AoqAudioFileErrorCode

錯誤碼

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

解碼檔案失敗

AoqAudioExternalStreamConfig

外部音頻流配置。

欄位

類型

預設值

說明

trackType

AoqTrackType

Audio

音頻軌道類型

codecType

AoqEncoderType

AudioPCM

音頻流格式,支援 PCM

channels

NSInteger

1

聲道數

sampleRate

NSInteger

48000

採樣率(Hz)

playoutVolume

NSInteger

100

播放音量,範圍 [0, 100]

publishVolume

NSInteger

100

推流音量,範圍 [0, 100]

maxBufferDuration

NSInteger

1000

最大緩衝時間長度(ms)

enable3A

BOOL

NO

輸入 PCM 是否做 3A 處理

AoqAudioFrameData

外部音頻資料。

欄位

類型

說明

dataPtr

void *

音頻 PCM 裸資料指標

dataSize

NSInteger

PCM 資料位元組數

numOfSamples

NSInteger

採樣點數(單聲道)

bytesPerSample

NSInteger

每個採樣點位元組數

numOfChannels

NSInteger

聲道數

samplesPerSec

NSInteger

每秒採樣點數

pushSequence

int32_t

PCM 輸入輪次

timeStamp

int64_t

時間戳記

autoGenMute

BOOL

資料回調有效,YES 表示 SDK 產生的靜音資料

AoqAudioStreamDirection

外部音頻流方向。

枚舉值

值

說明

AoqAudioStreamPublish

0

推流音頻

AoqAudioStreamPlayout

1

播放音頻

AoqAudioExternalStreamToggle

外部音頻流切換狀態。

枚舉值

值

說明

AoqAudioExternalStreamToggleNormal

0

恢複正常

AoqAudioExternalStreamTogglePause

1

暫停

AoqAudioSource

音訊框架回調資料來源。

枚舉值

值

說明

AoqAudioSourceCaptured

0

採集的音頻資料

AoqAudioSourceProcessCaptured

1

3A 後的音頻資料

AoqAudioSourcePublish

2

推流的音頻資料(需 Connect 成功)

AoqAudioSourcePlayback

3

播放的音頻資料

AoqAudioObserverMode

音訊框架回調模式。

枚舉值

值

說明

AoqAudioObserverModeReadOnly

0

唯讀

AoqAudioObserverModeReadWrite

1

讀寫

AoqAudioObserverConfig

音訊框架回調配置。

欄位

類型

預設值

說明

sampleRate

NSInteger

48000

回調音頻採樣率

channels

NSInteger

1

回調音頻聲道數

mode

AoqAudioObserverMode

ReadOnly

讀寫入模式

AoqAudioVolumeIndicationConfig

本地音量提示配置。

欄位

類型

預設值

說明

interval

NSInteger

0

回調間隔(ms);<=0 關閉回調,>0 且 <10 時按 10 處理

smooth

NSInteger

3

音量平滑係數,範圍 [0, 10],取值越大越平滑

AoqAudioVolume

本地音量資訊。

欄位

類型

說明

volume

NSInteger

平滑後的瞬時音量,範圍 [0, 255]

視頻類型

AoqVideoCaptureConfig

視頻採集配置。

欄位

類型

預設值

說明

width

NSInteger

1280

採集寬度(像素);isExternal=YES 時無效

height

NSInteger

720

採集高度(像素);isExternal=YES 時無效

fps

NSInteger

15

採集幀率;isExternal=YES 時無效(節奏由送幀決定)

isExternal

BOOL

NO

是否外部採集;YES 時不開啟網路攝影機,由 pushExternalVideoCapturedFrame: 喂幀

AoqVideoCanvas

視頻渲染資料結構。

欄位

類型

預設值

說明

view

NSView *

nil

顯示視圖,傳 nil 表示移除渲染綁定

renderMode

AoqRenderMode

Auto

渲染模式

調用方需保證 view 生命週期長於 setLocalView: / setRemoteView: 設定期間。

AoqRenderMode

渲染顯示模式。

枚舉值

值

說明

AoqRenderModeAuto

0

自動模式

AoqRenderModeStretch

1

展開平鋪模式,寬高比不一致時展開到目標比例,畫面會變形

AoqRenderModeFill

2

填充黑邊模式,寬高比不一致時上下或左右填充黑邊

AoqRenderModeCrop

3

裁剪模式,寬高比不一致時裁剪寬或高,畫面內容會丟失

AoqVideoPixelFormat

視頻像素格式。

枚舉值

值

說明

AoqVideoPixelFormatUnknown

0

未知格式

AoqVideoPixelFormatI420

1

I420

AoqVideoPixelFormatNV12

2

NV12

AoqVideoPixelFormatNV21

3

NV21

AoqVideoPixelFormatBGRA

4

BGRA

AoqVideoPixelFormatRGBA

5

RGBA

AoqVideoPixelFormatCVPixelBuffer

6

零拷貝路徑,pixelBuffer 欄位填 CVPixelBufferRef

AoqVideoFrame

外部視頻資料。

欄位

類型

說明

format

AoqVideoPixelFormat

像素格式

width

NSInteger

寬度(像素)

height

NSInteger

高度(像素)

data

NSData *

打包格式資料(NV12/NV21/BGRA/RGBA)

dataY / dataU / dataV

NSData *

I420 三平面資料

strideY / strideU / strideV

NSInteger

I420 三平面步長

pixelBuffer

CVPixelBufferRef

零拷貝,format=AoqVideoPixelFormatCVPixelBuffer 時使用

timeStamp

int64_t

時間戳記(ms);0 時 SDK 用本地時鐘補

AoqVideoEncodedFrame

外部已編碼視訊框架。調用方自行完成編碼,SDK 不做二次編碼,直接打包發送。

欄位

類型

說明

codec

AoqVideoCodecType

編碼格式

data

NSData *

編碼後資料

width

NSInteger

寬度(像素)

height

NSInteger

高度(像素)

timeStamp

int64_t

時間戳記(ms);0 時 SDK 用本地時鐘補

AoqVideoCodecType

外部編碼幀 codec 類型。

枚舉值

值

說明

AoqVideoCodecTypeJPEG

0

JPEG

AoqVideoDeviceState

視頻裝置狀態。

欄位

類型

說明

state

AoqVideoDeviceStateCode

狀態代碼

reason

NSInteger

錯誤碼(AoqErrorCode)

AoqVideoDeviceStateCode

視頻裝置狀態代碼。

枚舉值

值

說明

AoqVideoDeviceNone

0

無狀態

AoqVideoDeviceCaptureStarting

1

網路攝影機正在啟動

AoqVideoDeviceCaptureStarted

2

網路攝影機已啟動

AoqVideoDeviceCaptureStopping

3

網路攝影機正在停止

AoqVideoDeviceCaptureStopped

4

網路攝影機已停止

AoqVideoDeviceCaptureFail

5

網路攝影機啟動失敗

AoqMirrorMode

鏡像模式。

枚舉值

值

說明

AoqMirrorModeDisabled

0

關閉鏡像

AoqMirrorModeEnabled

1

開啟鏡像

AoqOrientationMode

方向模式。

枚舉值

值

說明

AoqOrientationModeAuto

0

自動

AoqOrientationModePortrait

1

豎屏

AoqOrientationModeLandscape

2

橫屏

AoqVideoCodecConfig

視頻編解碼參數(編解碼共用)。用於解碼時僅 trackType / codecType / width / height / fps / bitrate 生效(作為訂閱提議參與協商),其餘欄位僅編碼使用。

欄位

類型

預設值

說明

isExternal

BOOL

NO

外部編碼模式;YES 時由客戶推送已編碼幀,SDK 不做採集和編碼

trackType

AoqTrackType

Video

軌道類型

codecType

AoqEncoderType

VideoH264

編碼格式

width

NSInteger

540

解析度寬

height

NSInteger

960

解析度高

fps

NSInteger

5

幀率

bitrate

NSInteger

500000

起始碼率(bps)

minBitrate

NSInteger

128000

最小碼率(bps)

keyframeInterval

NSInteger

2

主要畫面格間隔(秒)

mirrorMode

AoqMirrorMode

Disabled

鏡像模式

orientationMode

AoqOrientationMode

Auto

方向模式

AoqVideoSource

視訊框架回調資料來源(管線位置)。

枚舉值

值

說明

AoqVideoSourceCaptured

0

採集後的視頻資料(前處理前)

AoqVideoSourcePreEncode

1

編碼前的視頻資料(前處理後)

AoqVideoSourceRemote

2

遠端解碼後、渲染前的視頻資料

AoqVideoObserverMode

視訊框架回調模式。

枚舉值

值

說明

AoqVideoObserverModeReadOnly

0

唯讀

AoqVideoObserverModeReadWrite

1

讀寫

AoqVideoObserverAlignment

視頻輸出寬度對齊。

枚舉值

值

說明

AoqVideoObserverAlignmentDefault

0

預設

AoqVideoObserverAlignmentEven

1

偶數對齊

AoqVideoObserverAlignment4

2

4 對齊

AoqVideoObserverAlignment8

3

8 對齊

AoqVideoObserverAlignment16

4

16 對齊

AoqVideoObserverConfig

視訊框架回調配置。

欄位

類型

預設值

說明

format

AoqVideoPixelFormat

I420

期望回調像素格式

alignment

AoqVideoObserverAlignment

Default

寬度對齊策略

mode

AoqVideoObserverMode

ReadOnly

讀寫入模式,僅 I420 / CVPixelBuffer 支援 ReadWrite

mirrorApplied

BOOL

NO

是否對回調資料應用鏡像

AoqRenderView

渲染視圖控制項,繼承自 NSView,可作為 AoqVideoCanvas.view 使用。

屬性

類型

說明

engineDisplayView

NSView *(唯讀)

引擎內部顯示視圖

renderWidth

int(唯讀)

渲染寬度

renderHeight

int(唯讀)

渲染高度

enableMetal

BOOL(唯讀)

是否啟用 Metal 渲染

delegate

id<AoqRenderViewDelegate>

渲染視圖事件委託

AoqRenderViewDelegate

渲染視圖事件委託協議。
- (void)onRenderViewSizeChanged:(AoqRenderView * _Nonnull)view;

回調

說明

onRenderViewSizeChanged:

渲染視圖尺寸變化回調