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 |
| 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) |
| 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
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.
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:
- Para set_video_decoder_config, apenas os campos track_type/codec_type/width/height/fps/bitrate entram em vigor.
- push_external_video_frame é consumido somente após start_video_capture(is_external=True). Para formatos compactados (NV12/NV21/BGRA/RGBA), preencha
frame.data; para os três aviões I420, preencha frame.data_y/u/v e a passada correspondente. Se o buffer estiver cheio, ele retornará AoqErrorCode.VIDEO_EXTERNAL_BUFFER_FULL(210).
- push_external_video_encoded_frame requer start_video_capture(is_external=True) e set_video_encoder_config(codec_type=VIDEO_JPEG) e segue o caminho de desvio sem recodificação.
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) |
| 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 |