Este tópico descreve as APIs TypeScript, os eventos e os tipos de dados do AOQ Client SDK para Electron. O SDK é compatível com macOS x64/arm64 e Windows x64, e requer Node.js 16 ou superior.
aoq-electron-sdk (npm). Plataformas compatíveis: macOS (x64 / arm64) e Windows x64. Node.js >= 16.Índice de APIs
Entrada e ciclo de vida do engine
API | Descrição |
|---|---|
createAoqClientEngine | Obtém a instância wrapper do engine (singleton inicializado sob demanda no nível do módulo) |
createEngine | Crie a instância nativa do engine |
destroy | Destrói a instância do engine |
getVersion | Obtém a versão do SDK |
connect | Conecta ao servidor relay |
disconnect | Desconecta do servidor |
Gerenciamento de dispositivos de áudio
API | Descrição |
|---|---|
startAudioCapture | Abre o dispositivo de captura de áudio (microfone) |
stopAudioCapture | Fecha o dispositivo de captura de áudio |
muteAudioCapture | Silencia ou reativa a captura de áudio |
startAudioPlayer | Inicia a renderização de áudio para reproduzir áudio remoto |
stopAudioPlayer | Interrompe a renderização de áudio |
pauseAudioPlayer | Pausa a renderização de áudio, com suporte a fade-out |
resumeAudioPlayer | Retoma a renderização de áudio, com suporte a fade-in |
interruptAudioPlayer | Interrompe a sessão de áudio atual |
Configuração de codec de áudio
API | Descrição |
|---|---|
setAudioEncoderConfig | Defina os parâmetros de codificação de áudio |
setAudioDecoderConfig | Defina os parâmetros de decodificação de áudio |
Gerenciamento de dispositivos de vídeo
API | Descrição |
|---|---|
startVideoCapture | Abre o dispositivo de captura de vídeo (câmera) |
stopVideoCapture | Fecha o dispositivo de captura de vídeo |
Codec de vídeo e entrada externa
API | Descrição |
|---|---|
setVideoEncoderConfig | Defina os parâmetros de codificação de vídeo |
setVideoDecoderConfig | Defina os parâmetros de decodificação de vídeo |
pushExternalVideoCapturedFrame | Envia um frame de vídeo capturado externamente |
pushExternalVideoEncodedFrame | Envia um frame de vídeo codificado externamente |
Controle de stream de mídia
API | Descrição |
|---|---|
enableSendMediaStream | Ative ou desative o envio de uma stream de mídia local |
Reprodução de arquivos de áudio
API | Descrição |
|---|---|
startAudioFile | Inicia a reprodução de um arquivo de áudio local na stream de publicação |
stopAudioFile | Interrompe a reprodução do arquivo de áudio |
pauseAudioFile | Pausa a reprodução do arquivo de áudio |
resumeAudioFile | Retoma a reprodução do arquivo de áudio |
getAudioFileDuration | Consulta a duração total do arquivo de áudio |
getAudioFileCurrentPosition | Consulta a posição atual de reprodução do arquivo de áudio |
setAudioFilePositionMillis | Defina a posição de reprodução do arquivo de áudio (seek) |
setAudioFileVolume | Defina o volume do arquivo de áudio |
getAudioFileVolume | Consulta o volume atual do arquivo de áudio |
Streams de áudio externas
API | Descrição |
|---|---|
addAudioExternalStream | Adiciona uma stream de áudio externa |
removeAudioExternalStream | Remove uma stream de áudio externa |
pushAudioExternalStreamData | Fornece dados PCM de áudio externo |
setAudioExternalStreamVolume | Defina o volume de uma stream de áudio externa |
getAudioExternalStreamVolume | Consulta o volume de uma stream de áudio externa |
clearAudioExternalStreamBuffer | Limpa o buffer de uma stream de áudio externa |
Mensagens em tempo real
API | Descrição |
|---|---|
sendDataMsg | Envia uma mensagem de dados em tempo real |
Callbacks de frames de áudio
API | Descrição |
|---|---|
setAudioFrameObserver | Defina se o observer de dados de frames de áudio está ativado ou desativado |
enableAudioFrameObserver | Ative ou desative o callback de frames de áudio em uma posição específica |
Indicação de volume local
API | Descrição |
|---|---|
enableLocalAudioVolumeIndication | Ative ou desative o callback de indicação de volume de captura local |
Callbacks de frames de vídeo
API | Descrição |
|---|---|
setVideoFrameObserver | Defina se o observer de dados de frames de vídeo está ativado ou desativado |
enableVideoFrameObserver | Ative ou desative o callback de frames de vídeo em uma posição específica |
Renderização de vídeo (YUVCanvasRenderer)
API | Descrição |
|---|---|
bind | Vincula um elemento canvas |
unbind | Desvincula e limpa a imagem |
bound | Consulta se existe um vínculo estabelecido atualmente |
drawFrame | Desenha um frame de dados de vídeo I420 |
Eventos do engine (IAoqEngineEvents)
Evento | Descrição |
|---|---|
onError | Callback de erro do engine |
onWarning | Callback de aviso do engine |
onConnectionStatusChange | Callback de alteração de status de conexão |
onStats | Callback de estatísticas do engine |
onAudioDeviceStateChanged | Callback de alteração de status operacional do dispositivo de áudio |
onAudioDeviceRouteChanged | Callback de alteração de rota de saída de áudio |
onAudioFileState | Callback de status de reprodução de arquivo de áudio |
onLocalAudioVolumeIndication | Callback de indicação de volume de captura local |
onVideoDeviceStateChanged | Callback de alteração de status operacional do dispositivo de vídeo |
onDataMsg | Callback para mensagem de dados em tempo real recebida |
onCapturedAudioFrame | Callback para dados de áudio brutos capturados |
onProcessCapturedAudioFrame | Callback para dados de áudio após processamento 3A |
onPublishAudioFrame | Callback para dados de áudio de publicação |
onPlaybackAudioFrame | Callback para dados de áudio de reprodução |
onCapturedVideoFrame | Callback para dados de vídeo brutos locais após captura |
onPreEncodeVideoFrame | Callback para dados de vídeo brutos locais antes da codificação |
onRemoteVideoFrame | Callback para dados de vídeo remoto após decodificação e antes da renderização |
Detalhes das APIs
Entrada e ciclo de vida do engine
createAoqClientEngine
Obtém a instância wrapper do engine. Trata-se de um singleton inicializado sob demanda no nível do módulo. Chamadas subsequentes retornam a mesma instância, alinhando-se à semântica de singleton do engine nativo. Esta também é a exportação padrão do pacote.
IAoqClientEngine. Observe que este método cria apenas a camada wrapper JS e a bridge nativa. Para criar efetivamente o engine, chame também createEngine().
createEngine
Crie a instância nativa do engine. Como o engine é um singleton global, chamadas adicionais retornam sucesso diretamente.
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqCreateConfig | Configuração de criação do engine |
0 em caso de sucesso; -1 indica falha na criação ou parâmetro JSON inválido.
createEngine() anexa um message pump Win32 de 16 ms ao loop libuv da thread JS atual (necessário para captura de câmera) e o interrompe em destroy(). Portanto, não bloqueie sincronamente a thread JS por longos períodos após chamar createEngine().destroy
Destrói a instância do engine e libera todos os recursos.
0 indica sucesso; valores diferentes de 0 indicam falha. Se o engine não tiver sido criado, o retorno será 0.
getVersion
Obtém a versão atual do SDK. Não é necessário chamar createEngine() anteriormente.
connect
Conecta ao servidor relay. O servidor da aplicação obtém parâmetros temporários de conexão AOQ com base no protocolo em uso e os envia ao cliente. Para mais informações, consulte Token authentication.
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqConnectConfig | Configuração de conexão, incluindo token, SID, lista de pontos de acesso relay e listas de tracks de publicação e assinatura |
0 indica que a chamada foi despachada e executa assincronamente; valores diferentes de 0 indicam falha na validação de parâmetros. O resultado da conexão é notificado pelo evento onConnectionStatusChange.
disconnect
Desconecta do servidor e libera os recursos associados à conexão.
0 indica que a chamada foi despachada e executa assincronamente; valores diferentes de 0 indicam falha.
Gerenciamento de dispositivos de áudio
startAudioCapture
NSMicrophoneUsageDescription no arquivo Info.plist da aplicação.
stopAudioCapture
muteAudioCapture
mute=true silencia e false reativa o áudio.
startAudioPlayer
stopAudioPlayer / pauseAudioPlayer / resumeAudioPlayer
fadeMs: duração do fade-out ou fade-in, em milissegundos. 0 indica execução imediata.
interruptAudioPlayer
Parâmetros | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
fadeMs | number | Duração do fade-out, em milissegundos |
Configuração de codec de áudio
connect(). Para usar Opus (AoqEncoderTypeAudioOpus), o plug-in PluginOpus deve estar integrado ao SDK ou distribuído com o pacote.
Gerenciamento de dispositivos de vídeo
NSCameraUsageDescription em Info.plist. Quando config.isExternal=true, a câmera não é aberta e os frames são entregues via pushExternalVideoCapturedFrame.
setLocalView / setRemoteView / switchCamera não estão disponíveis. Para pré-visualização, utilize o observer de frames com YUVCanvasRenderer (consulte 2.13).Codec de vídeo e entrada externa
Parâmetros | Tipo | Descrição |
|---|---|---|
meta | AoqExternalVideoFrameMeta / AoqExternalVideoEncodedFrameMeta | Metadados do frame (dimensões, formato e timestamp) |
buffer | Uint8Array | Dados do frame (dados de pixel ou dados codificados) |
pushExternalVideoCapturedFramesó é consumido apósstartVideoCapture({ isExternal: true }). Retorna211quando a captura externa não está ativada e210quando o buffer está cheio.- Formatos
AoqVideoPixelFormatI420e empacotados (NV12 / NV21 / BGRA / RGBA) são compatíveis. Para I420,bufferdeve usar layout compacto (stride = width), com os planos Y / U / V concatenados em ordem. pushExternalVideoEncodedFrameexigesetVideoEncoderConfig({ isExternal: true })previamente. Retorna212quando não estiver ativado. Atualmente, apenas JPEG é compatível.- Quando
meta.timeStampfor0, o SDK o preenche com a hora local.
Controle de stream de mídia
enableSendMediaStream(trackType, false) após a inicialização e ativar o envio somente depois que onConnectionStatusChange reportar AoqConnectionStatusConnected.
Reprodução de arquivos de áudio
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqAudioFileMixConfig | Configuração de mixagem de arquivo. |
fileId | string | Identificador do arquivo, definido pelo chamador. Chamadas subsequentes da API usam este valor para localizar o arquivo. |
positionMs | number | Posição alvo de reprodução, em milissegundos |
type | AoqAudioStreamDirection | Volume de publicação ou volume de reprodução local |
volume | number | Volume. Valores válidos: 0 a 100. |
getAudioFileDuration/getAudioFileCurrentPositionretornam o número de milissegundos;getAudioFileVolumeretorna o volume atual;- Os métodos getters acima retornam
-1quando o engine não foi criado.
onAudioFileState.
Streams de áudio externas
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqAudioExternalStreamConfig | Configuração da stream de áudio externa. |
streamId | string | Identificador da stream, definido pelo chamador |
meta | AoqAudioExternalFrameMeta | Metadados do frame PCM. |
buffer | Uint8Array | Dados PCM |
fadeoutMs | number | Duração do fade-out ao limpar o buffer, em milissegundos |
pushAudioExternalStreamDataretorna110(buffer de áudio externo cheio) quando a duração em buffer excedemaxBufferDuration.getAudioExternalStreamVolumeretorna o volume atual. Retorna-1quando o engine não foi criado.clearAudioExternalStreamBuffernão possui valor de retorno no lado nativo e sempre retorna0em uma chamada bem-sucedida.
Mensagens em tempo real
string, ela será codificada internamente em UTF-8 para um Buffer antes do envio. Mensagens recebidas do par são reportadas via callback do evento onDataMsg.
Callbacks de frames de áudio
Parâmetros | Tipo | Descrição |
|---|---|---|
enable | boolean |
|
params | AoqAudioObserverParams | Especifique a posição do callback, estado ligado/desligado e formato do callback |
setAudioFrameObserver(true) para registrar o observer. Em seguida, chame enableAudioFrameObserver para cada posição necessária. Os dados são entregues através dos eventos correspondentes.
ReadOnly).Indicação de volume local
config.interval <= 0, o callback é desativado. Após a ativação, onLocalAudioVolumeIndication é acionado no intervalo especificado por config.interval. Chame este método após startAudioCapture() para obter dados de volume.
Callbacks de frames de vídeo
Parâmetros | Tipo | Descrição |
|---|---|---|
enable | boolean |
|
params | AoqVideoObserverParams | Especifique a posição do callback, estado ligado/desligado, formato de pixel e política de alinhamento |
AoqVideoFrameEvent através de onCapturedVideoFrame / onPreEncodeVideoFrame / onRemoteVideoFrame. Para I420, buffer corresponde aos planos Y / U / V concatenados com base no stride. Outros formatos empacotados são passados como dados originais. Apenas o modo somente leitura é compatível.
Renderização de vídeo (YUVCanvasRenderer)
Renderizador de software integrado ao SDK. Assume as responsabilidades de pré-visualização de setLocalView / setRemoteView em plataformas móveis.
API | Descrição |
|---|---|
bind | Vincula um canvas (vincular novamente substitui o sink) |
unbind | Desvincula e limpa a imagem |
bound | Indica se um vínculo está estabelecido |
drawFrame | Desenha um frame; apenas I420 é compatível, e o método retorna silenciosamente para formatos não-I420 ou quando o tamanho ou comprimento do buffer é insuficiente |
object-fit para controlar o canvas.
Eventos do engine (IAoqEngineEvents)
O engine herda de EventEmitter<IAoqEngineEvents>. Os eventos constituem a saída unificada para todas as notificações assíncronas do SDK e mapeiam um a um os callbacks nativos de AoqEngineEventListener. Não é necessário registrar eventos que não sejam de seu interesse.
onError
code corresponde a um valor AoqErrorCode (consulte 3.3).
onWarning
code corresponde a um valor AoqWarningCode (consulte 3.3).
onConnectionStatusChange
onStats
Parâmetros | Tipo | Descrição |
|---|---|---|
stats | AoqStats | Estatísticas de publicação e assinatura e estatísticas de rede para áudio, vídeo e mensagens de dados |
onAudioDeviceStateChanged
onAudioDeviceRouteChanged
routeType corresponde a um valor AoqAudioDeviceRouteType (consulte 3.4).
onAudioFileState
onLocalAudioVolumeIndication
enableLocalAudioVolumeIndication.
onVideoDeviceStateChanged
onDataMsg
data é um Buffer copiado no lado nativo e pode ser mantido com segurança de forma assíncrona. Para mensagens de texto, use Buffer.from(data).toString() para converter os dados em string.
Eventos de frames de áudio
setAudioFrameObserver(true) e enableAudioFrameObserver para ativar.
Eventos de frames de vídeo
setVideoFrameObserver(true) e enableVideoFrameObserver para ativar. Os eventos de frame são somente leitura. Modificações em buffer no callback não são gravadas de volta no SDK.
Tipos de dados e enumerações
Todos os tipos são exportados da raiz do pacote, permitindo o uso direto de import { ... } from 'aoq-electron-sdk'. As enumerações são tipos TypeScript enum e estão disponíveis em tempo de execução, enquanto interfaces (interface) são apenas restrições de tipo. Se um campo marcado como opcional não for especificado, o valor padrão na tabela será utilizado.
Tipos gerais
AoqCreateConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
workDir | string | Não | "" | Diretório de trabalho do SDK (para logs e arquivos temporários) |
enableDumpAudio | boolean | Não | false | Defina se os dados de áudio devem ser salvos (para depuração) |
extras | string | Não | "" | Parâmetros estendidos (uma string JSON) |
isBTScoMode no Android é exclusivo para dispositivos móveis e não é fornecido pelo Electron.AoqConnectConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
token | string | Sim | - | Token de autenticação de conexão |
sid | string | Sim | - | ID da sessão |
certFingerprint | string | Não | "" | Fingerprint do certificado do servidor |
workspaceIdHash | string | Não | None | Hash do ID do workspace. Uma string vazia equivale a não passar o parâmetro. |
relayEndpoints | Array | Sim | - | Lista de pontos de acesso relay |
publishTracks | Array | Sim | - | Lista de tracks publicadas localmente |
subscribeTracks | Array | Sim | - | Lista de tracks assinadas localmente |
AoqRelayEndpoint
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
routeIndex | number | Não | -1 | Índice da rota |
endpoint | string | Sim | - | Nome de domínio ou endereço IP do servidor relay |
port | number | Sim | - | Porta do servidor relay |
AoqTrackParam
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
trackType | AoqTrackType | Sim | - | Tipo de track |
trackMode | AoqTrackMode | Não | AoqTrackModeSegment | Modo streaming ou não-streaming. Efetivo apenas para downlink de áudio. |
Tipos de estatísticas
AoqStats
Resumo das estatísticas do engine, reportado periodicamente via onStats. Um campo de array é um array vazio quando não há dados, e networkStats não é entregue quando não há dados.
Campo | Tipo | Descrição |
|---|---|---|
audioPublishStats | Array | Estatísticas de publicação de áudio |
videoPublishStats | Array | Estatísticas de publicação de vídeo |
dataMsgPublishStats | Array | Estatísticas de publicação de mensagens de dados |
audioSubscribeStats | Array | Estatísticas de assinatura de áudio |
videoSubscribeStats | Array | Estatísticas de assinatura de vídeo |
dataMsgSubscribeStats | Array | Estatísticas de assinatura de mensagens de dados |
networkStats | AoqNetworkStats | Estatísticas de rede |
AoqAudioPublishStats
Campo | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
bitrate | number | Taxa de bits, em bit/s |
bytes | number | Bytes acumulados enviados |
encodeVolume | number | Volume de codificação da stream de publicação |
AoqAudioSubscribeStats
Campo | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
bitrate | number | Taxa de bits, em bit/s |
bytes | number | Bytes acumulados recebidos |
playVolume | number | Volume de reprodução |
AoqVideoPublishStats
Campo | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
bitrate | number | Taxa de bits, em bit/s |
bytes | number | Bytes acumulados enviados |
encodeFps | number | Taxa de quadros de codificação |
AoqVideoSubscribeStats
Campo | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
bitrate | number | Taxa de bits, em bit/s |
bytes | number | Bytes acumulados recebidos |
decodeFps | number | Taxa de quadros de decodificação |
renderFps | number | Taxa de quadros de renderização |
AoqDataMsgPublishStats / AoqDataMsgSubscribeStats
Campo | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
bitrate | number | Taxa de bits, em bit/s |
bytes | number | Bytes acumulados enviados e recebidos |
AoqNetworkStats
Campo | Tipo | Descrição |
|---|---|---|
sendBitrate | number | Taxa de bits de envio, em bit/s |
sendBytes | number | Bytes acumulados enviados |
recvBitrate | number | Taxa de bits de recebimento, em bit/s |
recvBytes | number | Bytes acumulados recebidos |
loss | number | Taxa de perda de pacotes, de 0 a 100 |
rtt | number | Latência de ida e volta, em ms |
Enumerações
AoqTrackType
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqTrackTypeAudio | 0 | Track de áudio |
AoqTrackTypeVideo | 1 | Track de vídeo |
AoqTrackTypeData | 2 | Track de mensagem de dados |
AoqTrackMode
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqTrackModeSegment | 0 | Segmentado: os dados são empacotados e entregues em segmentos semânticos, como uma frase. |
AoqTrackModeStream | 1 | Streaming: os dados são entregues continuamente. |
AoqEncoderType
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqEncoderTypeUnknown | 0 | Formato desconhecido |
AoqEncoderTypeAudioPCM | 1 | Áudio PCM |
AoqEncoderTypeAudioOpus | 2 | Áudio Opus (baseado em plug-in; requer PluginOpus) |
AoqEncoderTypeVideoH264 | 3 | Vídeo H.264 |
AoqEncoderTypeVideoJpeg | 4 | Vídeo JPEG |
AoqEncoderTypeDataText | 5 | Texto de mensagem |
AoqConnectionStatus
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqConnectionStatusDisconnected | 0 | Desconectado |
AoqConnectionStatusConnecting | 1 | Conectando |
AoqConnectionStatusConnected | 2 | Conectado |
AoqConnectionStatusFailed | 3 | Falha na conexão |
AoqMirrorMode
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqMirrorModeDisabled | 0 | Espelhamento desativado |
AoqMirrorModeEnabled | 1 | Espelhamento ativado |
AoqOrientationMode
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqOrientationModeAuto | 0 | Ajuste automático |
AoqOrientationModePortrait | 1 | Retrato |
AoqOrientationModeLandscape | 2 | Paisagem |
AoqErrorCode
Os códigos de erro são definidos na camada nativa. O parâmetro code de onError e os valores de retorno da API utilizam estes valores (a camada TS não os exporta como enum).
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqErrorCodeOK | 0 | Sucesso |
AoqErrorCodeParamInvalid | 1 | Parâmetro inválido |
AoqErrorCodeStateInvalid | 2 | Estado inválido |
AoqErrorCodeUnSupport | 3 | Não compatível na plataforma atual ou no modo atual |
AoqErrorCodeAudio | 100 | Erro genérico de áudio |
AoqErrorCodeAudioExternalBufferFull | 110 | Buffer de áudio externo cheio |
AoqErrorCodeAudioDevice | 120 | Erro genérico de dispositivo de áudio |
AoqErrorCodeAudioDeviceRecordingAuthFailed | 121 | Permissão de gravação não concedida |
AoqErrorCodeAudioDeviceRecordingOccupied | 122 | Dispositivo de gravação em uso |
AoqErrorCodeAudioDeviceRecordingBackgroundStart | 123 | Falha ao iniciar gravação em segundo plano |
AoqErrorCodeAudioDeviceRecordingStartFail | 124 | Falha ao iniciar gravação |
AoqErrorCodeAudioDevicePlayoutOccupied | 125 | Dispositivo de reprodução em uso |
AoqErrorCodeAudioDevicePlayoutBackgroundStart | 126 | Falha ao iniciar reprodução em segundo plano |
AoqErrorCodeAudioDevicePlayoutStartFail | 127 | Falha ao iniciar reprodução |
AoqErrorCodeVideo | 200 | Erro genérico de vídeo |
AoqErrorCodeVideoExternalBufferFull | 210 | Buffer de vídeo externo cheio |
AoqErrorCodeVideoExternalCaptureNotEnabled | 211 | Captura de vídeo externa não ativada |
AoqErrorCodeVideoExternalEncoderNotEnabled | 212 | Codificação de vídeo externa não ativada |
AoqErrorCodeVideoDevice | 220 | Erro genérico de dispositivo de vídeo |
AoqErrorCodeVideoDeviceCameraOpenFail | 221 | Falha ao abrir a câmera |
AoqErrorCodeVideoDeviceCameraAuthFailed | 222 | Permissão de câmera não concedida |
AoqErrorCodeVideoDeviceCameraOccupied | 223 | Câmera em uso |
AoqErrorCodeVideoDeviceCameraRunningError | 224 | Exceção de tempo de execução da câmera |
AoqErrorCodeVideoCodec | 230 | Erro genérico de codec de vídeo |
AoqErrorCodeVideoCodecEncoderInitFail | 231 | Falha ao inicializar o codificador de vídeo |
AoqErrorCodeVideoRender | 240 | Erro genérico de renderização de vídeo |
AoqErrorCodeVideoRenderCreateFail | 241 | Falha ao criar renderização de vídeo |
AoqErrorCodeVideoRenderDrawError | 242 | Erro de desenho na renderização de vídeo |
-1 quando o engine não foi criado ou foi destruído, ou quando um parâmetro não é um JSON válido.AoqWarningCode
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqWCOK | 0 | Sem avisos |
AoqWCAudio | 100 | Aviso genérico de áudio |
AoqWCAudioHowling | 101 | Microfonia detectada |
AoqWCAudioDevice | 120 | Aviso genérico de dispositivo de áudio |
AoqWCAudioDeviceMicEnumerateError | 121 | Erro de enumeração de microfone |
AoqWCAudioDeviceMicStartTimeout | 122 | Tempo limite de inicialização do microfone |
AoqWCAudioDeviceRecordingError | 123 | Erro durante a gravação |
AoqWCAudioDeviceSpeakerEnumerateError | 124 | Erro de enumeração de alto-falante |
AoqWCAudioDeviceSpeakerStartTimeout | 125 | Tempo limite de inicialização do alto-falante |
AoqWCAudioDevicePlayoutError | 126 | Erro durante a reprodução |
AoqWCVideo | 200 | Aviso genérico de vídeo |
AoqWCVideoCameraEnumerateError | 201 | Erro de enumeração de câmera |
AoqWCVideoEncoderSwitched | 202 | Codificador de vídeo alternado |
AoqWCVideoRenderDowngrade | 203 | Renderização de vídeo rebaixada |
Tipos de áudio
AoqAudioCaptureConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
isExternal | boolean | Não | false | Defina se o modo de captura externa deve ser usado |
channel | number | Não | 1 | Número de canais de captura de áudio. 1 e 2 são compatíveis. |
AoqAudioPlaybackConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
isExternal | boolean | Não | false | Defina se o modo de reprodução externa deve ser usado |
channel | number | Não | 1 | Número de canais de reprodução de áudio. 1 e 2 são compatíveis. |
isVoipMode / isDefaultSpeaker são campos exclusivos para dispositivos móveis e não são fornecidos pelo Electron.AoqAudioCodecConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
trackType | AoqTrackType | Não | AoqTrackTypeAudio | Tipo de track |
codecType | AoqEncoderType | Não | AoqEncoderTypeAudioPCM | Formato do codec |
sampleRate | number | Não | 48000 | Taxa de amostragem, em Hz. Para codificação, Opus 8/16/48K e PCM 8/16/32/48K são compatíveis. Para decodificação, 24K também é compatível, mas apenas no modo Segment. |
channel | number | Não | 1 | Número de canais. 1 e 2 são compatíveis. |
bitrate | number | Não | 32000 | Taxa de bits, em bit/s |
AoqAudioDeviceRouteType
A tabela a seguir lista os valores válidos de routeType para onAudioDeviceRouteChanged. Estes valores são definidos pela camada nativa e não são exportados como enum pela camada TypeScript.
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqAudioDeviceRouteDefault | 0 | Rota padrão |
AoqAudioDeviceRouteHeadset | 1 | Fones de ouvido com microfone |
AoqAudioDeviceRouteEarpiece | 2 | Auricular |
AoqAudioDeviceRouteHeadsetNoMic | 3 | Fones de ouvido sem microfone |
AoqAudioDeviceRouteSpeakerPhone | 4 | Alto-falante |
AoqAudioDeviceRouteUsb | 5 | Dispositivo de áudio USB |
AoqAudioDeviceRouteBluetooth | 6 | Modo Bluetooth SCO |
AoqAudioDeviceRouteBluetoothA2dp | 7 | Modo Bluetooth A2DP |
AoqAudioDeviceStateCode
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqAudioDeviceNone | 0 | Sem estado |
AoqAudioDeviceRecordStarting | 1 | Captura iniciando |
AoqAudioDeviceRecordStarted | 2 | Captura iniciada |
AoqAudioDeviceRecordStopping | 3 | Captura parando |
AoqAudioDeviceRecordStopped | 4 | Captura parada |
AoqAudioDeviceRecordFail | 5 | Falha na captura |
AoqAudioDevicePlayStarting | 6 | Reprodução iniciando |
AoqAudioDevicePlayStarted | 7 | Reprodução iniciada |
AoqAudioDevicePlayStopping | 8 | Reprodução parando |
AoqAudioDevicePlayStopped | 9 | Reprodução parada |
AoqAudioDevicePlayFail | 10 | Falha na reprodução |
AoqAudioDeviceState
Campo | Tipo | Descrição |
|---|---|---|
state | AoqAudioDeviceStateCode | Status operacional do dispositivo |
reason | number | Código do motivo do erro. Consulte AoqErrorCode. |
Tipos de arquivo de áudio
AoqAudioFileMixConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
fileId | string | Sim | - | Identificador do arquivo. Chamadas subsequentes da API usam este valor para localizar o arquivo. |
fileName | string | Sim | - | Nome do arquivo (incluindo o caminho) |
cycles | number | Não | -1 | Número de loops. -1 indica loop ilimitado. |
startPosMs | number | Não | 0 | Posição inicial de reprodução, em milissegundos |
publishVolume | number | Não | 100 | Volume de publicação. Valores válidos: 0 a 100. |
playoutVolume | number | Não | 100 | Volume de reprodução. Valores válidos: 0 a 100. |
AoqAudioFileStateCode
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqAudioFileNone | 0 | Sem estado |
AoqAudioFileStarted | 1 | Reprodução iniciada |
AoqAudioFileStopped | 2 | Reprodução parada |
AoqAudioFilePaused | 3 | Reprodução pausada |
AoqAudioFileResumed | 4 | Reprodução retomada |
AoqAudioFileEnded | 5 | Reprodução encerrada |
AoqAudioFileBuffering | 6 | Buffering de reprodução |
AoqAudioFileBufferingEnd | 7 | Buffering encerrado |
AoqAudioFileFailed | 8 | Falha na reprodução |
AoqAudioFileErrorCode
A tabela a seguir lista os valores válidos de AoqAudioFileState.errorCode. Estes valores são definidos pela camada nativa e entregues como valores number pela camada TypeScript.
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqAudioFileNoError | 0 | Sem erro |
AoqAudioFileOpenFailed | 1 | Falha ao abrir o arquivo |
AoqAudioFileDecodeFailed | 2 | Falha ao decodificar o arquivo |
AoqAudioFileState
Campo | Tipo | Descrição |
|---|---|---|
fileId | string | Identificador do arquivo |
stateCode | AoqAudioFileStateCode | Código de status de reprodução do arquivo |
errorCode | number | Código de erro do arquivo. Consulte AoqAudioFileErrorCode. |
Tipos de stream de áudio externa
AoqAudioStreamDirection
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqAudioStreamPublish | 0 | Stream de publicação |
AoqAudioStreamPlayout | 1 | Stream de reprodução (reprodução local) |
AoqAudioExternalStreamConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
streamId | string | Sim | - | Identificador da stream |
trackType | AoqTrackType | Não | AoqTrackTypeAudio | Tipo de track de áudio |
codecType | AoqEncoderType | Não | AoqEncoderTypeAudioPCM | Formato da stream de áudio. PCM é compatível atualmente. |
channels | number | Não | 1 | Número de canais. Limitado pelo codec da stream de publicação. 1 e 2 são compatíveis. |
sampleRate | number | Não | 48000 | Taxa de amostragem, em Hz. 8, 12, 16, 24, 32, 44,1, 48, 64, 88,2, 96, 176,4 e 192K são compatíveis. |
playoutVolume | number | Não | 100 | Volume de reprodução. Valores válidos: 0 a 100. |
publishVolume | number | Não | 100 | Volume de publicação. Valores válidos: 0 a 100. |
maxBufferDuration | number | Não | 600000 | Duração máxima do buffer, em milissegundos. Valores válidos: 100 ou superior. Se a duração exceder este valor, o push falhará. |
enable3A | boolean | Não | false | Defina se o processamento 3A deve ser aplicado ao PCM de entrada |
AoqAudioExternalFrameMeta
Metadados de um frame de áudio externo. Os dados PCM são passados separadamente através do parâmetro buffer.
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
streamId | string | Sim | - | Identificador da stream de áudio externa alvo |
numOfSamples | number | Sim | 0 | Número de amostras (por canal) |
bytesPerSample | number | Sim | 2 | Bytes por amostra |
numOfChannels | number | Sim | 1 | Número de canais |
samplesPerSec | number | Sim | 48000 | Número de amostras por segundo (taxa de amostragem) |
pushSequence | number | Não | 0 | Rodada de entrada PCM |
timeStamp | number | Não | 0 | Timestamp |
AoqAudioFrameEvent
Dados de evento do observer de frames de áudio.
Campo | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
numOfSamples | number | Número de amostras (por canal) |
bytesPerSample | number | Bytes por amostra |
numOfChannels | number | Número de canais |
samplesPerSec | number | Número de amostras por segundo (taxa de amostragem) |
timeStamp | number | Timestamp |
autoGenMute | boolean | true indica dados silenciosos gerados pelo SDK |
buffer | Uint8Array | Dados PCM de áudio (já copiados no lado nativo) |
AoqAudioSource
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqAudioSourceCaptured | 0 | Dados de áudio capturados |
AoqAudioSourceProcessCaptured | 1 | Dados de áudio após processamento 3A |
AoqAudioSourcePublish | 2 | Dados de áudio a serem publicados (requer conexão bem-sucedida) |
AoqAudioSourcePlayback | 3 | Dados de áudio a serem reproduzidos |
AoqAudioObserverParams
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
enabled | boolean | Sim | false | Ative ou desative o callback nesta posição |
audioSource | AoqAudioSource | Sim | AoqAudioSourceCaptured | Posição do callback |
sampleRate | number | Não | 48000 | Taxa de amostragem do áudio do callback, em Hz. Ressamostragem é realizada se as taxas não coincidirem. |
channels | number | Não | 1 | Número de canais de áudio no callback. 1 e 2 são compatíveis. |
AoqAudioVolumeIndicationConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
interval | number | Não | 0 | Intervalo do callback, em milissegundos. Um valor menor ou igual a 0 desativa o callback. Um valor maior que 0 e menor que 10 é tratado como 10. |
smooth | number | Não | 3 | Coeficiente de suavização de volume. Um valor maior resulta em uma saída mais suave. Valores válidos: 0 a 10. |
AoqAudioVolume
Campo | Tipo | Descrição |
|---|---|---|
volume | number | Volume instantâneo suavizado. Valores válidos: 0 a 255. |
Tipos de vídeo
AoqVideoCaptureConfig
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
width | number | Não | 1280 | Largura de captura, em pixels. Este parâmetro é ineficaz quando isExternal=true. |
height | number | Não | 720 | Altura de captura, em pixels. Este parâmetro é ineficaz quando isExternal=true. |
fps | number | Não | 15 | Taxa de quadros de captura. Este parâmetro é ineficaz quando isExternal=true (o ritmo é determinado pela entrega de frames). |
isExternal | boolean | Não | false | Defina se a captura externa deve ser usada. Se verdadeiro, a câmera não é aberta. |
cameraDirection é um campo exclusivo para dispositivos móveis e não existe em plataformas desktop.AoqVideoCodecConfig
Codificação e decodificação compartilham a mesma estrutura (setVideoEncoderConfig / setVideoDecoderConfig).
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
isExternal | boolean | Não | false | Quando verdadeiro, o SDK não realiza captura ou codificação, e os frames são enviados diretamente por pushExternalVideoEncodedFrame. |
trackType | AoqTrackType | Não | AoqTrackTypeVideo | Tipo de track |
codecType | AoqEncoderType | Não | AoqEncoderTypeVideoH264 | Formato do codec |
width | number | Não | 540 | Largura de codificação, em pixels |
height | number | Não | 960 | Altura de codificação, em pixels |
fps | number | Não | 5 | Taxa de quadros de codificação |
bitrate | number | Não | 500000 | Taxa de bits inicial, em bit/s |
minBitrate | number | Não | 128000 | Taxa de bits mínima, em bit/s |
keyframeInterval | number | Não | 2 | Intervalo de keyframes, em segundos |
mirrorMode | AoqMirrorMode | Não | AoqMirrorModeDisabled | Modo de espelhamento |
orientationMode | AoqOrientationMode | Não | AoqOrientationModeAuto | Modo de orientação de vídeo |
AoqVideoPixelFormat
Formatos de pixel compatíveis no lado Electron (excluindo formatos texture / CVPixelBuffer de plataformas móveis).
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqVideoPixelFormatUnknown | 0 | Formato desconhecido |
AoqVideoPixelFormatI420 | 1 | I420 (formato planar YUV) |
AoqVideoPixelFormatNV12 | 2 | NV12 (formato semi-planar YUV) |
AoqVideoPixelFormatNV21 | 3 | NV21 (formato semi-planar YUV) |
AoqVideoPixelFormatBGRA | 4 | BGRA (32 bits) |
AoqVideoPixelFormatRGBA | 5 | RGBA (32 bits) |
AoqExternalVideoFrameMeta
Metadados de um frame de vídeo bruto externo. Os dados de pixel são passados separadamente através do parâmetro buffer.
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
trackType | AoqTrackType | Não | AoqTrackTypeVideo | Tipo de track |
format | AoqVideoPixelFormat | Sim | - | Formato de pixel |
width | number | Sim | - | Largura do vídeo, em pixels |
height | number | Sim | - | Altura do vídeo, em pixels |
timeStamp | number | Não | 0 | Timestamp, em milissegundos. Se for 0, o SDK o preenche com a hora local. |
format = I420, buffer deve usar layout compacto (stride = width), com os planos Y / U / V concatenados em ordem. Para outros formatos empacotados, passe os bytes inteiros do frame diretamente.AoqVideoCodecType
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqVideoCodecTypeJPEG | 0 | Codificação JPEG |
AoqExternalVideoEncodedFrameMeta
Metadados de um frame de vídeo codificado externamente. Os dados codificados são passados separadamente através do parâmetro buffer.
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
trackType | AoqTrackType | Não | AoqTrackTypeVideo | Tipo de track |
codec | AoqVideoCodecType | Não | AoqVideoCodecTypeJPEG | Formato do codec |
width | number | Sim | - | Largura, em pixels |
height | number | Sim | - | Altura, em pixels |
timeStamp | number | Não | 0 | Timestamp, em milissegundos. Se for 0, o SDK o preenche com a hora local. |
AoqVideoDeviceStateCode
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqVideoDeviceNone | 0 | Sem estado |
AoqVideoDeviceCaptureStarting | 1 | Captura iniciando |
AoqVideoDeviceCaptureStarted | 2 | Captura iniciada |
AoqVideoDeviceCaptureStopping | 3 | Captura parando |
AoqVideoDeviceCaptureStopped | 4 | Captura parada |
AoqVideoDeviceCaptureFail | 5 | Falha na captura (por exemplo, permissão negada ou dispositivo indisponível) |
AoqVideoDeviceState
Campo | Tipo | Descrição |
|---|---|---|
state | AoqVideoDeviceStateCode | Status operacional de captura do dispositivo |
reason | number | Código do motivo do erro. Consulte AoqErrorCode. |
Tipos de callback de frames de vídeo
AoqVideoSource
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqVideoSourceCaptured | 0 | Dados de vídeo capturados antes do pré-processamento |
AoqVideoSourcePreEncode | 1 | Dados de vídeo antes da codificação, após pré-processamento |
AoqVideoSourceRemote | 2 | Dados de vídeo remoto após decodificação e antes da renderização |
AoqVideoObserverAlignment
Valor da enumeração | Valor | Descrição |
|---|---|---|
AoqVideoObserverAlignmentDefault | 0 | Alinhamento padrão |
AoqVideoObserverAlignmentEven | 1 | Alinhamento par |
AoqVideoObserverAlignment4 | 2 | Alinhamento de 4 bytes |
AoqVideoObserverAlignment8 | 3 | Alinhamento de 8 bytes |
AoqVideoObserverAlignment16 | 4 | Alinhamento de 16 bytes |
AoqVideoObserverParams
Campo | Tipo | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
enabled | boolean | Sim | false | Ative ou desative o callback nesta posição |
videoSource | AoqVideoSource | Sim | AoqVideoSourceCaptured | Posição do callback |
format | AoqVideoPixelFormat | Não | AoqVideoPixelFormatI420 | Formato de pixel esperado dos dados do callback |
alignment | AoqVideoObserverAlignment | Não | AoqVideoObserverAlignmentDefault | Política de alinhamento de largura |
mirrorApplied | boolean | Não | false | Defina se os dados do callback devem ser espelhados |
YUVCanvasRenderer integrado para renderização.AoqVideoFrameEvent
Dados de evento do observer de frames de vídeo.
Campo | Tipo | Descrição |
|---|---|---|
trackType | AoqTrackType | Tipo de track |
format | AoqVideoPixelFormat | Formato de pixel |
width | number | Largura, em pixels |
height | number | Altura, em pixels |
strideY | number | Stride do plano Y (efetivo apenas para I420) |
strideU | number | Stride do plano U (efetivo apenas para I420) |
strideV | number | Stride do plano V (efetivo apenas para I420) |
timeStamp | number | Timestamp, em milissegundos |
buffer | Uint8Array | Dados do frame. Para I420, corresponde aos planos Y / U / V concatenados com base no stride. Outros formatos empacotados são passados como dados originais. |
Tipos de mensagem de dados
O Electron não usa o tipo wrapper AoqDataMsg. As mensagens de dados são enviadas e recebidas diretamente como dados binários:
Direção | Tipo | Descrição |
|---|---|---|
Envio | Uint8Array ou string |
|
Recebimento | Uint8Array |
|