QwenCloudBRASIL
Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗

SDK Linux Python

Referência da API Linux Python do SDK do cliente AOQ

A plataforma Linux fornece APIs por meio do aoq_client_sdk Módulo Python. Todos os retornos de chamada são acionados em threads nativos e você mesmo deve garantir a segurança do thread.

índice API

Ciclo de vida do motor

API Descrição
criar_motor Crie a instância do mecanismo (singleton)
destruir Destrua a instância do mecanismo
obter_versão Obtenha a versão do SDK
conectar Conecte-se ao servidor de retransmissão
desconectar Desconectar do servidor

Gerenciamento de dispositivos de áudio

API Descrição
iniciar_áudio_captura Iniciar captura de áudio (implementação vazia no Linux; não abre microfone)
parar_áudio_captura Pare a captura de áudio (sem efeito real no Linux)
mudo_áudio_captura Ativar ou desativar o som da captura de áudio (a captura do dispositivo não está disponível no Linux)
iniciar_áudio_player Iniciar reprodução de áudio (implementação vazia no Linux; não abre alto-falante)
parar_áudio_player Pare a reprodução de áudio (sem efeito real no Linux)
pausa_áudio_player Pausar a reprodução de áudio (a reprodução do dispositivo não está disponível no Linux)
retomar_áudio_player Retomar a reprodução de áudio (a reprodução do dispositivo não está disponível no Linux)
interromper_audio_player Interromper a sessão de áudio atual

Configuração de codificação de áudio

API Descrição
set_audio_encoder_config Definir parâmetros de codificação de áudio
set_audio_decoder_config Definir parâmetros de decodificação de áudio

Gerenciamento de dispositivos de vídeo

API Descrição
iniciar_vídeo_captura Inicie a captura de vídeo (somente o modo de captura externa é compatível com Linux)
parar_vídeo_captura Parar a captura de vídeo (aplica-se apenas ao modo de captura externa no Linux)
definir_local_visualizar Definir ou remover a janela de renderização de vídeo local (sem implementação de renderização no Linux)
definir_remoto_visualizar Definir ou remover a janela de renderização remota de vídeo (sem implementação de renderização no Linux)

Codec de vídeo e entrada externa

API Descrição
set_video_encoder_config Definir parâmetros de codificação de vídeo
set_vídeo_decodificador_config Definir parâmetros de decodificação de vídeo
push_externo_video_frame Enviar um quadro de vídeo capturado externamente
push_externo_video_encoded_frame Enviar um quadro de vídeo codificado externamente

Controle de fluxo de mídia

API Descrição
ativar_enviar_media_stream Habilitar ou desabilitar o envio de um fluxo de mídia local

Reprodução de arquivo de áudio

API Descrição
iniciar_áudio_arquivo Comece a reproduzir um arquivo de áudio local no fluxo de publicação
parar_áudio_arquivo Pare a reprodução do arquivo de áudio
pausa_áudio_arquivo Pausar a reprodução do arquivo de áudio
currículo_áudio_arquivo Retomar a reprodução do arquivo de áudio
obter_áudio_arquivo_duração Consultar a duração total do arquivo de áudio
get_audio_file_current_position Consultar a posição atual de reprodução do arquivo de áudio
set_audio_file_position_millis Defina a posição de reprodução do arquivo de áudio (busca)
set_áudio_arquivo_volume Defina o volume do arquivo de áudio
obter_áudio_arquivo_volume Consultar o volume atual do arquivo de áudio

Fluxos de áudio externos

API Descrição
adicionar_áudio_externo_stream Adicione um fluxo de áudio externo
remover_audio_external_stream Remover um fluxo de áudio externo
push_audio_external_stream_data Alimentar dados PCM de áudio externo
set_audio_external_stream_volume Definir o volume de um fluxo de áudio externo
get_audio_external_stream_volume Consultar o volume de um fluxo de áudio externo
limpar_audio_external_stream_buffer Limpar o buffer de um fluxo de áudio externo

Mensagens em tempo real

API Descrição
enviar_dados_msg Envie uma mensagem de dados em tempo real

Retornos de chamada de quadro de áudio

API Descrição
set_audio_frame_observer Definir o ouvinte de retorno de chamada de dados do quadro de áudio
ativar_áudio_frame_observador Ativar ou desativar o retorno de chamada do quadro de áudio em uma posição especificada

Retornos de chamada de quadro de vídeo

API Descrição
definir_vídeo_frame_observador Definir o ouvinte de retorno de chamada de dados do quadro de vídeo
ativar_vídeo_frame_observador Ativar ou desativar o retorno de chamada do quadro de vídeo em uma posição especificada

Interfaces de retorno de chamada

Retorno de chamada Descrição
ativado_erro Retorno de chamada de erro do mecanismo
on_conexão_status_mudança Retorno de chamada de alteração de status de conexão
em_dados_msg Retorno de chamada para uma mensagem de dados recebida em tempo real
IAudioFrameObserver Classe base para ouvintes de dados de quadros de áudio
IVideoFrameObserver Classe base para ouvintes de dados de quadros de vídeo

Funções utilitárias

API Descrição
carregar_biblioteca Especifique e carregue manualmente a biblioteca compartilhada nativa

Detalhes da API

set_video_decoder_config

def set_video_decoder_config(self, config: AoqVideoCodecConfig) -> int

config especifica configurações de decodificação de vídeo. Somente os seguintes campos terão efeito: track_type, codec_type, width, height, fps, bitrate. Outros campos aplicam-se apenas à codificação.

Ligue antes connect para propor configurações de codec para assinaturas.

Retorna 0 em caso de sucesso ou um valor diferente de zero em caso de falha.

Ciclo de vida do motor

criar_motor

Cria a instância do mecanismo (método de classe). O SDK mantém o mecanismo como um singleton global, portanto, chamar esse método novamente retorna a instância existente. Depois destroy, você deve ligar create_engine novamente antes de continuar a usar o motor.

@classmethod
def create_engine(cls, config: AoqCreateConfig, listener: AoqEngineEventListener) -> "AoqClientEngine"
Parâmetro Tipo Descrição
configuração AoqCreateConfig Configuração de criação do motor
ouvinte AoqEngineEventListener Ouvinte de retorno de chamada de evento do mecanismo

Retorna: a instância do mecanismo AoqClientEngine. Se a criação falhar, um RuntimeError será lançado.

destruir

Destrói a instância do mecanismo (método de classe) e libera todos os recursos.

@classmethod
def destroy(cls) -> int

Retorna: 0 em caso de sucesso; diferente de zero em caso de falha.

obter_versão

Obtém a versão atual do SDK (método estático).

@staticmethod
def get_version() -> str

Retorna: A string da versão, como "1.0.0".

conectar

Conecta-se ao servidor de retransmissão. O servidor de aplicação obtém parâmetros de conexão AOQ temporários com base no protocolo em uso e os envia ao cliente. Para obter mais informações, consulte Autenticação de token.

def connect(self, config: AoqConnectConfig) -> int
Parâmetro Tipo Descrição
configuração AoqConnectConfig Configuração de conexão, que inclui token, SID e lista de pontos de acesso de retransmissão

Retorna: 0 indica que a chamada é despachada e executada de forma assíncrona; diferente de zero indica que a validação do parâmetro falhou.

desconectar

Desconecta do servidor e libera os recursos associados à conexão.

def disconnect(self) -> int

Retorna: 0 indica que a chamada é despachada e executada de forma assíncrona; diferente de zero indica uma falha.

Gerenciamento de dispositivos de áudio

start_audio_capture

def start_audio_capture(self, config: AoqAudioCaptureConfig) -> int

No Linux, este método é uma implementação vazia. Retorna 0, mas não abre placa de som ou microfone. Fornece entrada de áudio por meio de um fluxo de áudio externo.

parar_audio_capture

def stop_audio_capture(self) -> int

Este método não tem efeito real porque a compilação do Linux não define o estado do dispositivo de captura de áudio.

mudo_audio_captura

def mute_audio_capture(self, mute: bool) -> int

A versão Linux não oferece suporte à captura de microfone. Este método não pode controlar um dispositivo de captura de áudio real.

iniciar_audio_player

def start_audio_player(self, config: AoqAudioPlaybackConfig) -> int

No Linux, este método é uma implementação vazia. Ele retorna 0, mas não abre uma placa de som ou alto-falante. Obtenha saída de áudio por meio de um retorno de chamada de quadro de áudio e reproduza você mesmo.

parar_audio_player / pausar_audio_player / retomar_audio_player

def stop_audio_player(self) -> int
def pause_audio_player(self, fade_ms: int = 0) -> int
def resume_audio_player(self, fade_ms: int = 0) -> int

A compilação do Linux não oferece suporte à reprodução de alto-falante, portanto, esses métodos não podem controlar um dispositivo real de reprodução de áudio. fade_ms especifica a duração do fade-out ou fade-in em milissegundos. 0 indica execução imediata.

interrupção_audio_player

def interrupt_audio_player(self, track_type: int, fade_ms: int = 0) -> int

Interrompe a sessão de áudio atual.

Configuração de codificação de áudio

def set_audio_encoder_config(self, config: AoqAudioCodecConfig) -> int
def set_audio_decoder_config(self, config: AoqAudioCodecConfig) -> int

Gerenciamento de dispositivos de vídeo

def start_video_capture(self, config: AoqVideoCaptureConfig) -> int
def stop_video_capture(self) -> int
def set_local_view(self, track_type: int, canvas: Optional[AoqVideoCanvas]) -> int
def set_remote_view(self, track_type: int, canvas: Optional[AoqVideoCanvas]) -> int

A versão Linux não oferece suporte à captura de câmera e não possui back-end de renderização de vídeo. Quando você liga start_video_capture, definir is_external para True e forneça frames ligando para push_external_video_frame. set_local_view, set_remote_viewe AoqVideoCanvas.view não têm efeito real no Linux. Para visualizar o vídeo, obtenha quadros por meio de um retorno de chamada de quadro de vídeo e renderize-os você mesmo.

Codec de vídeo e entrada externa

def set_video_encoder_config(self, config: AoqVideoCodecConfig) -> int
def set_video_decoder_config(self, config: AoqVideoCodecConfig) -> int
def push_external_video_frame(self, frame: AoqVideoFrame, track_type: AoqTrackType = AoqTrackType.VIDEO) -> int
def push_external_video_encoded_frame(self, track_type: AoqTrackType, frame: AoqVideoEncodedFrame) -> int

Notas:

Controle de fluxo de mídia

def enable_send_media_stream(self, track_type: AoqTrackType, enable: bool) -> int

Após a inicialização, desative o envio separadamente para cada faixa necessária chamando enable_send_media_stream(AoqTrackType.AUDIO, False) e enable_send_media_stream(AoqTrackType.VIDEO, False) conforme necessário. Depois que on_connection_status_change(CONNECTED) for recebido, habilite cada faixa em uma chamada separada.

Reprodução de arquivo de áudio

def start_audio_file(self, file_id: str, config: AoqAudioFileMixConfig) -> int
def stop_audio_file(self, file_id: str) -> int
def pause_audio_file(self, file_id: str) -> int
def resume_audio_file(self, file_id: str) -> int
def get_audio_file_duration(self, file_id: str) -> int
def get_audio_file_current_position(self, file_id: str) -> int
def set_audio_file_position_millis(self, file_id: str, position_ms: int) -> int
def set_audio_file_volume(self, file_id: str, type_: AoqAudioStreamDirection, volume: int) -> int
def get_audio_file_volume(self, file_id: str, type_: AoqAudioStreamDirection) -> int

Fluxos de áudio externos

def add_audio_external_stream(self, stream_id: str, config: AoqAudioExternalStreamConfig) -> int
def remove_audio_external_stream(self, stream_id: str) -> int
def push_audio_external_stream_data(self, stream_id: str, data: AoqAudioFrameData) -> int
def set_audio_external_stream_volume(self, stream_id: str, type_: AoqAudioStreamDirection, volume: int) -> int
def get_audio_external_stream_volume(self, stream_id: str, type_: AoqAudioStreamDirection) -> int
def clear_audio_external_stream_buffer(self, stream_id: str, fadeout_ms: int = -1) -> None

Quando o buffer está cheio, push_audio_external_stream_data retorna AoqErrorCode.AUDIO_EXTERNAL_BUFFER_FULL(110). Recomendamos que você espere cerca de 20 ms e tente novamente o mesmo quadro.

Mensagens em tempo real

def send_data_msg(self, msg: AoqDataMsg) -> int

Retornos de chamada de quadro de áudio

def set_audio_frame_observer(self, observer: Optional[IAudioFrameObserver]) -> int
def enable_audio_frame_observer(self, enabled: bool, audio_source: AoqAudioSource, config: AoqAudioObserverConfig) -> int

Passe None para set_audio_frame_observer para cancelar o registro do observador.

Retornos de chamada de quadro de vídeo

def set_video_frame_observer(self, observer: Optional[IVideoFrameObserver]) -> int
def enable_video_frame_observer(self, enabled: bool, video_source: AoqVideoSource, config: AoqVideoObserverConfig) -> int

Passe None para set_video_frame_observer para cancelar o registro do observador.

Interfaces de retorno de chamada

AoqEngineEventListener

Classe base para retornos de chamada de eventos do mecanismo. Todos os métodos são substituições opcionais com implementações vazias padrão. Os retornos de chamada são acionados em threads nativos e você mesmo deve garantir a segurança do thread.

class AoqEngineEventListener:
    def on_error(self, code: int, message: str) -> None: ...
    def on_connection_status_change(self, status: AoqConnectionStatus) -> None: ...
    def on_data_msg(self, msg: AoqDataMsg) -> None: ...

ativado_erro

def on_error(self, code: int, message: str) -> None

Retorno de chamada de erro do mecanismo. código corresponde a um valor enum AoqErrorCode.

on_connection_status_change

def on_connection_status_change(self, status: AoqConnectionStatus) -> None

Retorno de chamada de alteração do status da conexão. Transições de estado: DISCONNECTED -> CONNECTING -> CONNECTED/FAILED -> DISCONNECTED.

em_data_msg

def on_data_msg(self, msg: AoqDataMsg) -> None

Retorno de chamada para uma mensagem de dados em tempo real recebida.

####IAudioFrameObserver

Classe base para ouvintes de dados de quadros de áudio. Todos os métodos são substituições opcionais com implementações vazias padrão.

class IAudioFrameObserver:
    def on_captured_audio_frame(self, data: AoqAudioFrameData) -> None: ...
    def on_process_captured_audio_frame(self, data: AoqAudioFrameData) -> None: ...
    def on_publish_audio_frame(self, track_type: AoqTrackType, data: AoqAudioFrameData) -> None: ...
    def on_playback_audio_frame(self, data: AoqAudioFrameData) -> None: ...

O retorno de chamada é acionado no thread de áudio nativo. Não execute nenhuma operação demorada nele. AoqAudioFrameData.data já é uma cópia de bytes e pode ser usada de forma assíncrona com segurança.

IVideoFrameObserver

Classe base para ouvintes de dados de quadros de vídeo. Todos os métodos são substituições opcionais e retornam False por padrão.

class IVideoFrameObserver:
    def on_captured_video_frame(self, track_type: AoqTrackType, frame: AoqVideoFrame) -> bool: ...
    def on_pre_encode_video_frame(self, track_type: AoqTrackType, frame: AoqVideoFrame) -> bool: ...
    def on_remote_video_frame(self, track_type: AoqTrackType, frame: AoqVideoFrame) -> bool: ...

O retorno de chamada é acionado no thread de vídeo nativo. Não execute nenhuma operação demorada nele. Os dados de pixel no quadro já são uma cópia de bytes. A camada Python atualmente usa semântica de cópia e não oferece suporte para gravação de modificações, portanto, recomendamos que você sempre retorne False.

Funções utilitárias

carregar_biblioteca

def load_library(path: Optional[str] = None) -> ctypes.CDLL

Carrega a biblioteca compartilhada nativa. Normalmente você não precisa chamar esse método manualmente, porque a biblioteca é carregada automaticamente quando você usa o mecanismo pela primeira vez. Se o caminho estiver vazio, libAoqClientSdk.so é pesquisado na seguinte ordem: o AOQ_CLIENT_SDK_LIB variável de ambiente, o diretório do módulo, o diretório lib no mesmo nível e os caminhos padrão do sistema. Se o carregamento falhar, um OSError será lançado. Uma causa típica é que uma biblioteca dependente não está em LD_LIBRARY_PATH.

Tipos de dados e enumerações

Todos os tipos de dados são classes de dados Python. Você pode construí-los diretamente e atribuir valores aos campos.

Tipos gerais

AoqCreateConfig

Campo Tipo Valor padrão Descrição
trabalho_dir "" Diretório de trabalho do SDK
ativar_dump_audio bool Falso Especifica se o despejo de áudio deve ser ativado (para depuração)
extras "" Sequência de parâmetro estendida
máximo_codificado_vídeo_frame_bytes interno 190×1024 Tamanho máximo do quadro codificado em bytes. Aplica-se apenas ao codificador JPEG interno do SDK.
ativar_drop_oversized_video_frame bool Falso Para o codificador JPEG interno do SDK, é necessário descartar um quadro que permanece superdimensionado com a qualidade mais baixa.

AoqConnectConfig

Campo Tipo Valor padrão Descrição
ficha "" Token de autenticação de conexão
sid "" ID da sessão
certificado "" Impressão digital do certificado do servidor
retransmissão_endpoints Lista[AoqRelayEndpoint] Nenhum Lista de pontos de acesso de retransmissão
espaço de trabalho_id_hash "" Hash de ID do espaço de trabalho
publicar_tracks Lista[AoqTrackParam] Nenhum Lista de faixas publicadas localmente
inscrever-se_tracks Lista[AoqTrackParam] Nenhum Lista de faixas locais inscritas

AoqRelayEndpoint

Campo Tipo Valor padrão Descrição
ponto final "" Nome de domínio ou endereço IP do servidor de retransmissão
porto interno 0 Porta do servidor de retransmissão
rota_índice interno -1 Índice de caminho, que está alinhado com routeIndex em SDKs para outras plataformas. Se for menor que 0, o SDK o preenche automaticamente com base no subscrito da matriz.
tcp_port interno 0 Porta de reserva TCP. Um valor 0 usa a porta padrão do SDK, 443.

AoqTrackParam

Campo Tipo Valor padrão Descrição
faixa_type AoqTrackType AoqTrackType.AUDIO Tipo de trilha

AoqDataMsg

Campo Tipo Valor padrão Descrição
dados bytes b"" Dados da mensagem (uma cadeia de bytes)

Enumerações

AoqErrorCode

Valor enum Valor Descrição
OK 0 Sucesso
PARAM_INVÁLIDO 1 Parâmetro inválido
ESTADO_INVÁLIDO 2 Estado inválido
ÁUDIO 100 Erro genérico de áudio
ÁUDIO_EXTERNO_BUFFER_FULL 110 O buffer de áudio externo está cheio
ÁUDIO_DISPOSITIVO 120 Erro genérico do dispositivo de áudio
ÁUDIO_DEVICE_RECORDING_AUTH_FAILED 121 Permissão de gravação não concedida
ÁUDIO_DEVICE_RECORDING_OCCUPIED 122 O dispositivo de gravação está em uso
ÁUDIO_DEVICE_RECORDING_START_FAIL 124 Falha ao iniciar a gravação
ÁUDIO_DEVICE_PLAYOUT_OCCUPIED 125 O dispositivo de reprodução está em uso
ÁUDIO_DEVICE_PLAYOUT_START_FAIL 127 Falha ao iniciar a reprodução
VÍDEO 200 Erro genérico de vídeo
VÍDEO_EXTERNO_BUFFER_FULL 210 O buffer de vídeo externo está cheio

AoqConnectionStatus

Valor enum Valor Descrição
DESCONECTADO 0 Desconectado
CONECTANDO 1 Conectando
CONECTADO 2 Conectado
FALHA 3 Falha na conexão

AoqTrackType

Valor enum Valor Descrição
ÁUDIO 0 Faixa de áudio
VÍDEO 1 Faixa de vídeo
DADOS 2 Rastreamento de mensagens de dados

AoqEncoderType

Valor enum Valor Descrição
DESCONHECIDO 0 Formato desconhecido
ÁUDIO_PCM 1 Áudio PCM
ÁUDIO_OPUS 2 Opus de áudio
VÍDEO_H264 3 Vídeo H.264
VÍDEO_JPEG 4 Vídeo JPEG
DADOS_TEXTO 5 Texto da mensagem

AoqMirrorMode

Valor enum Valor Descrição
DESATIVADO 0 Desativar espelhamento
HABILITADO 1 Habilitar espelhamento

AoqOrientationMode

Valor enum Valor Descrição
AUTO 0 Ajuste automático
RETRATO 1 Retrato
PAISAGEM 2 Paisagem

AoqRenderMode

Valor enum Valor Descrição
AUTO 0 Modo adaptativo
ESTIRAMENTO 1 Modo esticar
PREENCHER 2 Modo de preenchimento
COLHEITA 3 Modo de corte

####AoqVideoPixelFormat

Valor enum Valor Descrição
DESCONHECIDO 0 Formato desconhecido
I420 1 I420 (formato plano YUV)
NV12 2 NV12 (formato semiplanar YUV)
NV21 3 NV21 (formato semiplanar YUV)
BGRA 4 BGRA (32 bits)
RGBA 5 RGBA (32 bits)

AoqCameraDirection

Valor enum Valor Descrição
FRENTE 0 Câmera frontal (valor enum genérico da plataforma; a captura da câmera não é suportada no Linux)
VOLTAR 1 Câmera traseira (valor enum genérico da plataforma; a captura da câmera não é suportada no Linux)

Tipos de áudio

AoqAudioCaptureConfig

Campo Tipo Valor padrão Descrição
é_externo bool Falso Especifica se deve ser usado o modo de captura externa
canal interno 1 Número de canais (mono por padrão)

AoqAudioPlaybackConfig

Campo Tipo Valor padrão Descrição
é_externo bool Falso Especifica se deve ser usado o modo de reprodução externa
canal interno 1 Número de canais (mono por padrão)

AoqAudioCodecConfig

Campo Tipo Valor padrão Descrição
faixa_type AoqTrackType ÁUDIO Tipo de trilha
codec_type AoqEncoderType ÁUDIO_OPUS Formato de codec
amostra_taxa interno 48.000 Taxa de amostragem, em Hz
canal interno 1 Número de canais
taxa de bits interno 32.000 Taxa de bits, em bits/s

AoqAudioFileMixConfig

Campo Tipo Valor padrão Descrição
arquivo_nome "" Nome do arquivo (incluindo o caminho). Não pode estar vazio.
ciclos interno -1 Número de loops. -1 indica loop ilimitado.
iniciar_pos_ms interno 0 Posição inicial de reprodução, em milissegundos
publicar_volume interno 100 Volume de publicação. Valores válidos: 0 a 100.
reprodução_volume interno 100 Volume de reprodução. Valores válidos: 0 a 100.

AoqAudioExternalStreamConfig

Campo Tipo Valor padrão Descrição
faixa_type AoqTrackType ÁUDIO Tipo de faixa de áudio
codec_type AoqEncoderType ÁUDIO_PCM Formato de fluxo de áudio
canais interno 1 Número de canais
amostra_taxa interno 48.000 Taxa de amostragem, em Hz
reprodução_volume interno 100 Volume de reprodução. Valores válidos: 0 a 100.
publicar_volume interno 100 Volume de publicação. Valores válidos: 0 a 100.
max_buffer_duração interno 1000 Duração máxima do buffer, em milissegundos
ativar_3a bool Falso Especifica se o processamento 3A deve ser aplicado ao PCM de entrada

AoqAudioFrameData

Dados de áudio brutos, que são usados ​​para entrada externa ou retornos de chamada do observador.

Campo Tipo Valor padrão Descrição
dados bytes b"" Dados PCM de áudio bruto (uma cópia de bytes em retornos de chamada)
num_of_samples interno 0 Número de amostras (por canal)
bytes_por_amostra interno 0 Bytes por amostra
num_de_canais interno 0 Número de canais
amostras_per_sec interno 0 Número de amostras por segundo (taxa de amostragem)
push_sequência interno 0 Rodada de entrada PCM
hora_carimbo interno 0 Carimbo de data/hora
automático_gen_mute bool Falso True indica dados silenciosos gerados pelo SDK

AoqAudioObserverConfig

Campo Tipo Valor padrão Descrição
amostra_taxa interno 48.000 Taxa de amostragem do áudio de retorno de chamada, em Hz
canais interno 1 Número de canais de áudio no retorno de chamada
modo AoqAudioObserverMode LEIA_SOMENTE Modo leitura-gravação

AoqAudioStreamDirection

Valor enum Valor Descrição
PUBLICAR 0 Fluxo de publicação
JOGO 1 Stream de reprodução (stream de assinatura)

AoqAudioExternalStreamToggle

Valor enum Valor Descrição
NORMAL 0 Estado normal
PAUSA 1 Estado pausado

AoqAudioSource

Valor enum Valor Descrição
CAPTURADO 0 Dados de áudio capturados
PROCESSO_CAPTURADO 1 Dados de áudio após processamento 3A
PUBLICAR 2 Dados de áudio a serem publicados
REPRODUÇÃO 3 Dados de áudio a serem reproduzidos

AoqAudioObserverMode

Valor enum Valor Descrição
LEIA_SOMENTE 0 Modo somente leitura
LER_WRITE 1 Modo leitura-gravação

Tipos de vídeo

AoqVideoCaptureConfig

Campo Tipo Valor padrão Descrição
largura interno 1280 Largura da captura, em pixels. Este parâmetro é ineficaz quando is_external=True.
altura interno 720 Altura da captura, em pixels. Este parâmetro é ineficaz quando is_external=True.
FPS interno 15 Taxa de quadros de captura. Este parâmetro é ineficaz quando is_external=True.
é_externo bool Falso Especifica se a captura externa deve ser usada. Linux suporta apenas True. Depois de chamar start_video_capture, forneça quadros chamando push_external_video_frame.
câmera_direção AoqCameraDireção FRENTE Direção da câmera para plataformas móveis. O Linux não tem capacidade correspondente. Mantenha o valor FRENTE.

AoqVideoCodecConfig

Parâmetros do codec de vídeo, que são compartilhados por codificação e decodificação. Para decodificação, apenas track_type/codec_type/width/height/fps/bitrate entram em vigor e os outros campos são usados ​​apenas para codificação.

Campo Tipo Valor padrão Descrição
faixa_type AoqTrackType VÍDEO Tipo de trilha
codec_type AoqEncoderType VÍDEO_H264 Formato de codec
largura interno 540 Largura de codificação, em pixels
altura interno 960 Altura de codificação, em pixels
FPS interno 5 Taxa de quadros de codificação
taxa de bits interno 500000 Taxa de bits alvo, em bit/s
min_taxa de bits interno 128.000 Taxa de bits mínima, em bits/s
quadro-chave_interval interno 2 Intervalo de quadro-chave, em segundos
espelho_modo AoqMirrorMode DESATIVADO Modo espelho
orientação_modo AoqOrientationMode AUTO Modo de orientação de vídeo

####AoqVideoCanvas

Campo Tipo Valor padrão Descrição
ver interno 0 Identificador da janela de renderização. O Linux não possui back-end de renderização, portanto este campo não tem efeito real. Mantenha o valor 0.
renderizar_modo AoqRenderMode AUTO Modo de renderização. O Linux não possui back-end de renderização, portanto este campo não tem efeito real.

AoqVideoFrame

Quadro de vídeo externo ou dados de retorno de chamada de quadro de vídeo. Ao usar um formato compactado (NV12/NV21/BGRA/RGBA), preencha os dados. Ao usar os três planos I420, preencha data_y/u/v e a passada correspondente. Os dois métodos são mutuamente exclusivos.

Campo Tipo Valor padrão Descrição
formato AoqVideoPixelFormat DESCONHECIDO Formato de pixel
largura interno 0 Largura do vídeo, em pixels
altura interno 0 Altura do vídeo, em pixels
dados bytes b"" Dados em formato compactado (NV12/NV21/BGRA/RGBA)
dados_y bytes b"" Dados do avião I420 Y
dados_u bytes b"" Dados do avião I420 U
dados_v bytes b"" Dados do plano I420 V
passo_y interno 0 Passo do plano Y
passo_u interno 0 Passo do plano U
passo_v interno 0 Passo do plano V
hora_carimbo interno 0 Carimbo de data/hora, em milissegundos. Se for 0, o SDK o preenche com o relógio local.

AoqVideoEncodedFrame

Um quadro de vídeo codificado externamente, como um quadro JPEG.

Campo Tipo Valor padrão Descrição
codec AoqEncoderType VÍDEO_JPEG Formato de codec
dados bytes b"" Dados codificados
largura interno 0 Largura, em pixels
altura interno 0 Altura, em pixels
hora_carimbo interno 0 Carimbo de data/hora, em milissegundos. Se for 0, o SDK o preenche com o relógio local.

AoqVideoObserverConfig

Campo Tipo Valor padrão Descrição
formato AoqVideoPixelFormat I420 Formato de pixel esperado dos dados de retorno de chamada
alinhamento AoqVideoObserverAlinhamento PADRÃO Política de alinhamento de largura
modo AoqVideoObserverMode LEIA_SOMENTE Modo leitura-gravação
espelho_aplicado bool Falso Especifica se os dados de retorno de chamada devem ser espelhados

AoqVideoSource

Valor enum Valor Descrição
CAPTURADO 0 Dados de vídeo capturados antes do pré-processamento
PRE_ENCODE 1 Dados de vídeo antes da codificação, após o pré-processamento
REMOTO 2 Dados de vídeo remotos após decodificação e antes da renderização

AoqVideoObserverMode

Valor enum Valor Descrição
LEIA_SOMENTE 0 Modo somente leitura
LER_WRITE 1 Modo leitura-gravação

AoqVideoObserverAlignment

Valor enum Valor Descrição
PADRÃO 0 Alinhamento padrão
MESMO 1 Alinhamento de números pares
ALINHAR_4 2 Alinhamento de 4 bytes
ALINHAR_8 3 Alinhamento de 8 bytes
ALINHAR_16 4 Alinhamento de 16 bytes