Tratamento de erros no SDK de Transmissão para Android do IVS | Streaming em tempo real - Amazon IVS

Tratamento de erros no SDK de Transmissão para Android do IVS | Streaming em tempo real

Esta seção é uma visão geral das condições de erros, como o SDK de Transmissão para Android para streaming em tempo real do IVS os relata à aplicação e o que uma aplicação deve fazer quando esses erros são encontrados.

Erros fatais x Erros não fatais

O objeto de erro tem um campo booleano “is fatal” de BroadcastException.

Em geral, erros fatais estão relacionados à conexão com o servidor do Stages (ou uma conexão não pode ser estabelecida ou foi perdida e não pode ser recuperada). O aplicativo deve recriar o estágios e se associar novamente, possivelmente com um novo token ou quando a conectividade do dispositivo se recuperar.

Erros não fatais geralmente estão relacionados ao estado de publicação/assinatura e são tratados pelo SDK, que repete a operação de publicação/assinatura.

Você pode verificar essa propriedade:

try { stage.join(...) } catch (e: BroadcastException) { If (e.isFatal) { // the error is fatal

Erros de entrada

Token malformado

Isso acontece quando o token de estágio está malformado.

O SDK gera uma exceção Java de uma chamada para stage.join, com o código de erro = 1000 e fatal = true.

Ação: crie um token válido e tente entrar novamente.

Token expirado

Isso acontece quando o token de estágio expirou.

O SDK gera uma exceção Java de uma chamada para stage.join, com o código de erro = 1001 e fatal = true.

Ação: crie um novo token e tente entrar novamente.

Token inválido ou revogado

Isso acontece quando o token do estágio não está malformado, mas é rejeitado pelo servidor do Stages. Isso é relatado de forma assíncrona por meio do renderizador de estágio fornecido pela aplicação.

O SDK chama onConnectionStateChanged com uma exceção, com o código de erro = 1026 e fatal = true.

Ação: crie um token válido e tente entrar novamente.

Erros de rede para entrada inicial

Isso acontece quando o SDK não consegue entrar em contato com o servidor do Stages para estabelecer uma conexão. Isso é relatado de forma assíncrona por meio do renderizador de estágio fornecido pela aplicação.

O SDK chama onConnectionStateChanged com uma exceção, com o código de erro = 1300 e fatal = true.

Ação: aguarde até que a conectividade do dispositivo se recupere e tente entrar novamente.

Erros de rede quando já ingressado

Se a conexão de rede do dispositivo cair, o SDK poderá perder sua conexão com os servidores de Estágios. Isso é relatado de forma assíncrona por meio do renderizador de estágio fornecido pela aplicação.

O SDK chama onConnectionStateChanged com uma exceção, com o código de erro = 1300 e fatal = true.

Ação: aguarde até que a conectividade do dispositivo se recupere e tente entrar novamente.

Erros de publicação/assinatura

Inicial

Há vários erros:

  • MultihostSessionOfferCreationFailPublish (1.020)

  • MultihostSessionOfferCreationFailSubscribe (1.021)

  • MultihostSessionNoIceCandidates (1.022)

  • MultihostSessionStageAtCapacity (1.024)

  • SignallingSessionCannotRead (1.201)

  • SignallingSessionCannotSend (1.202)

  • SignallingSessionBadResponse (1.203)

Estes são relatados de forma assíncrona por meio do renderizador de estágio fornecido pela aplicação.

O SDK repete a operação por um número limitado de vezes. as novas tentativas, o estado de publicação/assinatura é ATTEMPTING_PUBLISH / ATTEMPTING_SUBSCRIBE. Se as tentativas de repetição forem bem-sucedidas, o estado mudará para PUBLISHED / SUBSCRIBED.

O SDK chama onError com o código de erro relevante e fatal = false.

Ação: nenhuma ação é necessária, pois o SDK tenta novamente de forma automática. Opcionalmente, a aplicação pode atualizar a estratégia para forçar mais tentativas.

Já estabelecido, em seguida reprovar

Uma publicação ou assinatura pode falhar depois de ser estabelecida, provavelmente devido a um erro de rede. O código de erro para “conexão de peer perdida devido a um erro de rede” é 1400.

Isso é relatado de forma assíncrona por meio do renderizador de estágio fornecido pela aplicação.

O SDK tenta novamente a operação de publicação/assinatura. as novas tentativas, o estado de publicação/assinatura é ATTEMPTING_PUBLISH / ATTEMPTING_SUBSCRIBE. Se as tentativas de repetição forem bem-sucedidas, o estado mudará para PUBLISHED / SUBSCRIBED.

O SDK chama onError com o código de erro = 1400 e fatal = false.

Ação: nenhuma ação é necessária, pois o SDK tenta novamente de forma automática. Opcionalmente, a aplicação pode atualizar a estratégia para forçar mais tentativas. Se houver perda total de conectividade, é provável que a conexão com o Stages também falhe.