#include <subscriber.h>

Campos de dados
void(* on_connected )(otc_assinante *assinante, void *dados_do_usuário, const otc_stream *transmissão)
void(* on_disconnected )(otc_assinante *assinante, void *dados_do_usuário)
void(* on_reconnected )(otc_assinante *assinante, void *dados_do_usuário)
void(* on_render_frame )(otc_assinante *assinante, void *dados_do_usuário, const otc_video_frame *quadro)
void(* on_video_desativado )(otc_assinante *assinante, void *dados_do_usuário, enumeração otc_video_reason motivo)
void(* on_video_enabled )(otc_assinante *assinante, void *dados_do_usuário, enumeração otc_video_reason motivo)
void(* on_audio_desativado )(otc_assinante *assinante, void *dados_do_usuário)
void(* on_audio_enabled )(otc_assinante *assinante, void *dados_do_usuário)
void(* on_video_data_received )(otc_assinante *assinante, void *dados_do_usuário)
void(* on_video_desativar_aviso )(otc_assinante *assinante, void *dados_do_usuário)
void(* on_caption_text )(otc_assinante *assinante, void *dados_do_usuário, const char *text, otc_bool is_final)
void(* aviso_sobre_desativação_do_vídeo_retirado )(otc_assinante *assinante, void *dados_do_usuário)
void(* on_audio_stats )(otc_assinante *assinante, void *dados_do_usuário, struct otc_subscriber_audio_stats (audio_stats)
void(* on_video_stats )(otc_assinante *assinante, void *dados_do_usuário, struct otc_subscriber_video_stats video_stats)
void(* on_audio_level_updated )(otc_assinante *assinante, void *dados_do_usuário, float nível_de_áudio)
void(* on_error )(otc_assinante *assinante, void *dados_do_usuário, const char *error_string, enum otc_subscriber_error_code erro)
void(* on_audio_data )(otc_assinante *assinante, void *dados_do_usuário, const struct otc_audio_data *dados_de_áudio)
void(* on_video_quality_changed )(otc_assinante *assinante, void *dados_do_usuário, const struct otc_subscriber_video_stats *estatísticas, enumeração otc_video_reason motivo)
void(* on_network_condition_changed )(otc_assinante *assinante, void *dados_do_usuário, const struct otc_subscriber_media_link_stats *media_link_stats, enumeração otc_network_reason motivo)
void(* on_media_link_stats )(otc_assinante *assinante, void *dados_do_usuário, const struct otc_subscriber_media_link_stats *media_link_stats)
void * dados_do_usuário
void * reservado

Descrição detalhada

Funções de retorno de chamada do assinante.

Essa estrutura é um conjunto de ponteiros para funções que podem ser chamadas em caso de eventos relacionados a um assinante do OpenTok.

Todas as chamadas de retorno não serão executadas na thread do aplicativo ou na thread principal, mas em uma thread interna. O aplicativo deve retornar a chamada de retorno o mais rápido possível para evitar o bloqueio da thread interna.

Documentação de campo

on_audio_data

void(* on_audio_data) (otc_assinante *assinante, void *dados_do_usuário, const struct otc_audio_data *dados_de_áudio)

É chamado periodicamente para relatar os dados de áudio do assinante. As propriedades do áudio recebido podem mudar dinamicamente. As causas dessas mudanças incluem a negociação do codec de áudio, as condições da rede, etc. Os consumidores dos dados de áudio são responsáveis por lidar com essas mudanças de acordo com o caso de uso implementado (por exemplo, reamostragem de áudio).

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário associados a esta estrutura. | | audio_data | Os dados de áudio. |

on_audio_desativado

void(* on_audio_disabled) (otc_assinante *assinante, void *dados_do_usuário)

É chamado quando o áudio do assinante está desativado.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. |

on_audio_enabled

void(* on_audio_enabled) (otc_assinante *assinante, void *dados_do_usuário)

É chamado quando o áudio do assinante está ativado.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. |

on_audio_level_updated

void(* on_audio_level_updated) (otc_assinante *assinante, void *dados_do_usuário, float nível_de_áudio)

É chamado periodicamente para informar o nível de áudio do assinante.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | audio_level | O valor do nível de áudio, de 0 a 1,0. |

on_audio_stats

void(* on_audio_stats) (otc_assinante *assinante, void *dados_do_usuário, struct otc_subscriber_audio_stats (audio_stats)

É chamado periodicamente para relatar estatísticas de áudio do assinante.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | audio_stats | Um ponteiro para a estrutura de estatísticas de áudio. |

on_caption_text

void(* on_caption_text) (otc_assinante *assinante, void *dados_do_usuário, const char *text, otc_bool is_final)

É chamado quando o texto da legenda do stream do assinante estiver disponível.

Parâmetros : | | | | --- | --- | | subscriber | A instância do assinante. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | text | Ponteiro para o texto da legenda. | | is_final | Indica se uma legenda está concluída. |

on_connected

void(* on_connected) (otc_assinante *assinante, void *dados_do_usuário, const otc_stream *transmissão)

É chamado quando a instância se conecta com sucesso ao stream e começa a reproduzir a mídia.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | stream | O fluxo do assinante. A instância não sobrevive à execução da função de retorno de chamada. Certifique-se de fazer uma cópia caso essa instância seja usada posteriormente. |

on_disconnected

void(* on_disconnected) (otc_assinante *assinante, void *dados_do_usuário)

É chamado quando o fluxo do assinante é interrompido. Esse callback só é invocado se o recurso de reconexão estiver habilitado, sendo seguido pelo callback on_reconnected caso a reconexão seja bem-sucedida. Interrupções normais, quando a reconexão não está habilitada, são notificadas por meio do callback on_error.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. |

on_error

void(* on_error) (otc_assinante *assinante, void *dados_do_usuário, const char *error_string, enum otc_subscriber_error_code erro)

É chamado quando o assinante falha.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | error_string | Uma string contendo a mensagem de erro. | | error | Valor da enumeração do código de erro. |

on_media_link_stats

void(* on_media_link_stats) (otc_assinante *assinante, void *dados_do_usuário, const struct otc_subscriber_media_link_stats *media_link_stats)

É chamado periodicamente para relatar as estatísticas de links de mídia do assinante.

As estatísticas de links de mídia oferecem uma visão unificada das condições da rede no nível de transporte.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | media_link_stats | Um ponteiro para a estrutura de estatísticas do link de mídia. |

on_network_condition_changed

void(* on_network_condition_changed) (otc_assinante *assinante, void *dados_do_usuário, const struct otc_subscriber_media_link_stats *media_link_stats, enumeração otc_network_reason motivo)

Essa função de retorno é chamada quando é detectada uma alteração nas condições de rede do assinante ou do editor remoto.

A implementação atual aciona essa chamada de retorno somente quando a condição da rede muda em qualquer um dos lados.

O reason O parâmetro indica a causa do evento e, atualmente, é sempre OTC_NETWORK_REASON_NETWORK_CONDITION_CHANGE.

Este evento difere de on_video_disabled e on_video_enabled callbacks, na medida em que relata alterações na integridade da rede, em vez de alterações no estado da trilha de vídeo do assinante. As Applications podem usar esse callback para responder a problemas de rede, como atualizar a interface do usuário, registrar dados de telemetria ou acionar um comportamento adaptativo.

Parâmetros : | | | | --- | --- | | subscriber | A instância do assinante que aciona o evento. | | user_data | Ponteiro opcional de dados do usuário passado ao registrar o callback. | | media_link_stats | As estatísticas do link de mídia. | | reason | O motivo da mudança na condição da rede. |

on_reconnected

void(* on_reconnected) (otc_assinante *assinante, void *dados_do_usuário)

É chamado quando a transmissão do assinante é retomada.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. |

on_render_frame

void(* on_render_frame) (otc_assinante *assinante, void *dados_do_usuário, const otc_video_frame *quadro)

É chamado quando um novo quadro de vídeo para o assinante está pronto para ser renderizado. Não chamar quaisquer funções da API do OpenTok (exceto aquelas em video_frame.h) no mesmo thread que invoca essa função de retorno. Se você precisar chamar uma função da API do OpenTok (por exemplo, funções em publisher.h ou subscriber.h), reprogramar sua execução para uma thread diferente.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | frame | O quadro de vídeo. |

on_video_data_received

void(* on_video_data_received) (otc_assinante *assinante, void *dados_do_usuário)

É chamado quando um assinante recebe dados de vídeo pela primeira vez.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. |

on_video_desativar_aviso

void(* on_video_disable_warning) (otc_assinante *assinante, void *dados_do_usuário)

É chamado quando o OpenTok Media Router determina que a qualidade da transmissão se deteriorou e que o vídeo será desativado caso a qualidade se deteriore ainda mais.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. |

aviso_sobre_desativação_do_vídeo_retirado

void(* on_video_disable_warning_lifted) (otc_assinante *assinante, void *dados_do_usuário)

É chamado quando o OpenTok Media Router determina que a qualidade da transmissão melhorou a ponto de a desativação do vídeo não representar um risco imediato.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. |

on_video_desativado

void(* on_video_disabled) (otc_assinante *assinante, void *dados_do_usuário, enumeração otc_video_reason motivo)

É chamado quando o vídeo do assinante é desativado.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | reason | Fornece mais detalhes sobre o motivo pelo qual o vídeo foi desativado. |

on_video_enabled

void(* on_video_enabled) (otc_assinante *assinante, void *dados_do_usuário, enumeração otc_video_reason motivo)

É chamado quando o vídeo do assinante é ativado.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | reason | Fornece mais detalhes sobre o motivo pelo qual o vídeo foi ativado. |

on_video_quality_changed

void(* on_video_quality_changed) (otc_assinante *assinante, void *dados_do_usuário, const struct otc_subscriber_video_stats *estatísticas, enumeração otc_video_reason motivo)

Essa função de retorno de chamada é acionada quando um evento relacionado à qualidade é detectado no lado do assinante.

A implementação atual só o aciona em caso de interrupção do vídeo (pausa), mudança de codec ou mudança de resolução. Os congelamentos são rastreados internamente e apresentados por meio de estatísticas, mas nenhuma chamada de retorno é acionada para cada congelamento devido à sua curta duração e alta frequência potencial. Uma chamada de retorno é acionada apenas quando uma pausa é detectada (por exemplo, nenhum quadro renderizado por mais de 5 segundos), pois isso representa uma interrupção mais significativa na reprodução de mídia.

O reason O parâmetro indica a causa do evento e é considerado de acordo com a seguinte ordem de prioridade: OTC_VIDEO_REASON_VIDEO_INTERRUPT, OTC_VIDEO_REASON_CODEC_CHANGE, OTC_VIDEO_REASON_RESOLUTION_CHANGE.

Este evento difere de on_video_disabled e on_video_enabled funções de retorno, na medida em que notifica sobre alterações relevantes na qualidade do vídeo. on_video_disabled e `on_video_enabled` apenas indicam que a trilha de vídeo do assinante foi ativada ou desativada (por exemplo, devido a uma atualização de propriedade do stream ou a um fallback de áudio). Em contrapartida, este evento fornece informações de diagnóstico sobre as causas da degradação da qualidade, tais como travamentos, contagem de pausas e estatísticas atualizadas.

Essa função de retorno de chamada leva em consideração todos os tipos de interrupções de vídeo com duração de 5 segundos ou mais. Isso significa que, no caso específico de fallback de áudio ou alterações nas propriedades do stream (como a desativação do vídeo), além de acionar o on_video_disabled e on_video_enabled callbacks: a interrupção também é registrada como uma pausa nas estatísticas do vídeo, e a qualidade da interrupção do vídeo correspondente

Os aplicativos podem usar essa função de retorno de chamada para responder a problemas de qualidade, como atualizar a interface do usuário, registrar dados de telemetria ou notificar o usuário.

Parâmetros : | | | | --- | --- | | subscriber | A instância do assinante que aciona o evento. | | stats | As estatísticas de vídeo mais recentes do assinante no momento do evento. | | user_data | Ponteiro opcional de dados do usuário passado ao registrar o callback. | | motivo | O motivo do evento de qualidade, com base em otc_video_reason. |

on_video_stats

void(* on_video_stats) (otc_assinante *assinante, void *dados_do_usuário, struct otc_subscriber_video_stats video_stats)

É chamado periodicamente para relatar as estatísticas de vídeo do assinante.

Parâmetros : | | | | --- | --- | | subscriber | A instância que está invocando esta chamada. | | user_data | Ponteiro para os dados personalizados do usuário vinculados a esta estrutura. | | video_stats | Um ponteiro para a estrutura de estatísticas do vídeo. |

reservado

void* reservado

Um ponteiro nulo para uma área de memória que contém recursos reservados utilizados para a implementação interna.

dados_do_usuário

void* user_data

Esse membro da estrutura pode apontar para dados relacionados ao assinante dos quais o desenvolvedor possa precisar.