View a markdown version of this page

Solução de problemas do Amazon GameLift Streams - Amazon GameLift Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas do Amazon GameLift Streams

Acesso negado ao fazer uma solicitação ao serviço Amazon GameLift Streams

Se você encontrar AccessDenied exceções ao fazer chamadas para as APIs do Amazon GameLift Streams ou trabalhar com recursos no console, sua função AWS Identity and Access Management (IAM) pode ter permissões insuficientes para o Amazon Streams. GameLift Verifique o seguinte:

  • Se a função do IAM tiver uma política explícita de “negar tudo”, você deve listar explicitamente o GameLift Amazon Streams como uma exceção a essa política adicionando "gameliftstreams:*" ao elemento. NotAction Por exemplo:

    { "Sid": "DenyAllExceptListedIfNoMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:ListMFADevices", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken", "gameliftstreams:*" // Add this ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"} } }
  • Para obter mais informações, consulte o Identity and Access Management para Amazon GameLift Streams capítulo Segurança e consulte Solução de problemas de mensagens de erro de acesso negado no Guia do usuário do IAM.

Problemas do aplicativo

Esta seção identifica possíveis causas de problemas que impedem a execução de aplicativos ou fazem com que eles apareçam de forma diferente no Amazon GameLift Streams.

Verificações preliminares

  • Execute seu aplicativo em uma máquina diferente para verificar se ele está empacotado corretamente. Isso confirma que o conteúdo do seu aplicativo não contém caminhos codificados, ativos ausentes, bibliotecas ou binários que podem não funcionar em outros dispositivos.

Problemas de prótons

Problemas de aplicativo devido à resolução da tela

Os aplicativos podem congelar, falhar ou renderizar incorretamente se você tentar usar uma resolução de tela cheia que não seja 1920x1080. Recomendamos que você use uma janela de tela cheia sem bordas para executar seu aplicativo e não tente alterar a resolução.

O aplicativo é encerrado no início da sessão de transmissão

Se seu aplicativo for encerrado imediatamente quando uma sessão de streaming for iniciada, analise o seguinte para possíveis causas e soluções:

  • Verifique o tempo de execução. Na configuração do aplicativo Amazon GameLift Streams, confirme se o arquivo que você especificou no caminho de execução do executável é um arquivo executável ou script e está correto para o ambiente de execução que você selecionou. Os aplicativos do Windows devem ter um tipo de arquivo “.exe”, “.bat” ou “.cmd” e ter como alvo os tempos de execução do Windows ou do Proton. Os aplicativos Linux nativos devem ser arquivos executáveis direcionados ao tempo de execução do Ubuntu 22.04 LTS.

  • Verifique as DLLs necessárias. Seu aplicativo do Windows pode não ter as DLLs necessárias. Por exemplo, se seu aplicativo for uma compilação de depuração, ele precisará da versão de depuração das bibliotecas de tempo de execução Microsoft C e C++ (MSVC). Para resolver isso, recomendamos que você empacote sua compilação e DLLs lado a lado. Para obter instruções, consulte Preparar uma máquina de teste para executar um executável de depuração da Microsoft.

Em geral, recomendamos que você teste sua versão em uma máquina limpa primeiro, antes de experimentar o Amazon GameLift Streams. Para obter instruções sobre testes em uma instância do Amazon EC2, consulte. Configurar uma máquina remota

O aplicativo Unreal Engine falha ou requer dependências adicionais

Se o aplicativo Unreal Engine falhar ao iniciar, travar ou exigir a instalação de dependências adicionais, como o tempo de execução do Microsoft C and C++ (MSVC), tente o seguinte:

  • Use o executável correto. Para que seu aplicativo funcione corretamente com o Amazon GameLift Streams, defina o caminho do aplicativo para o executável completo que está localizado na subpasta Binaries/Win64/ (ou similar). O Unreal Engine produz dois executáveis: um pequeno executável de bootstrap na raiz da pasta e um executável de destino de plataforma na subpasta. Binaries/Win64/ O executável bootstrap na raiz tenta validar as pré-condições corretas e pode criar falsos positivos no Amazon GameLift Streams que impedem o lançamento do aplicativo. Se o executável de destino da plataforma estiver ausente, o aplicativo pode não ter sido criado corretamente. Por exemplo, veja a seguinte estrutura de pastas de um aplicativo Unreal de amostra:

    BuildApp |-> MyUnrealApp.exe |-> MyUnrealApp |-> Binaries |-> Win64 |-> MyUnrealApp.exe
  • Desative o Unreal Engine Asserts. Desative check as ensure macrosverify, e. Eles podem impedir que o aplicativo crie dumps de falhas. Para obter mais informações, consulte Asserts na documentação do Unreal Engine.

    • Defina USE_CHECKS_IN_SHIPPING=0 em sua compilação a desativação check e as verify macros.

    • Use o argumento da -handleensurepercent=0 linha de comando para desativar ensure as macros.

Problemas de performance

Esta seção identifica possíveis causas de problemas de desempenho de jogos ao serem executados no Amazon GameLift Streams e oferece sugestões para otimizar seus streams no serviço.

O desempenho do jogo é reduzido ao transmitir no Amazon GameLift Streams

Se seu jogo roda bem em sua própria máquina, mas enfrenta problemas de desempenho ao transmiti-lo no Amazon GameLift Streams, considere o seguinte:

  • Sua máquina pode ter um hardware mais poderoso do que o Amazon GameLift Streams. Certifique-se de testar o aplicativo em uma máquina com desempenho semelhante ao hardware que o Amazon GameLift Streams usa:

    • gen4n: comparável à GPU NVIDIA RTX 2060

    • gen5n: comparável à GPU NVIDIA RTX 3080

    • gen6n: comparável à GPU NVIDIA RTX 4060

    Isso verifica se as configurações de renderização do seu aplicativo são compatíveis com a GPU e se o desempenho atende às suas expectativas.

  • O problema pode ser devido à sua conexão de rede ou às configurações do Amazon GameLift Streams. Experimente as dicas de solução de problemas na Problemas de conectividade de streaming seção.

Se seu jogo estiver lento mesmo quando executado localmente, você precisará otimizar seu desempenho. Os melhores métodos de otimização dependerão do mecanismo ou estrutura específica que você está usando.

Os aplicativos do Windows apresentam tempos de carregamento lentos ou problemas de travamento

Se seu jogo estiver passando por longos períodos de carregamento ou travamentos, recomendamos o seguinte curso de ação:

  1. Garanta que seu aplicativo esteja empacotado e otimizado para desempenho de carregamento usando a orientação do fornecedor do mecanismo sobre como otimizar o conteúdo e o desempenho do sombreador.

  2. Certifique-se de que seu aplicativo esteja configurado para ser o aplicativo padrão em um grupo de stream.

  3. Otimize a primeira inicialização do aplicativo no serviço armazenando os shaders em cache como parte do pacote do seu aplicativo.

Há duas abordagens para ativar o armazenamento em cache de sombreamento:

  • Driver-based armazenamento em cache — Essa abordagem é específica para a versão da GPU e do driver do ambiente de execução. Essa opção pode ser aplicada a todos os aplicativos e, portanto, é a abordagem padrão recomendada. As etapas dessa abordagem precisarão ser replicadas para cada GPU/driver combinação.

  • Engine-based armazenamento em cache — Essa abordagem permite o armazenamento em cache de sombreamento por meio do mecanismo de jogo, se disponível. Isso coloca a responsabilidade de criar um cache pré-configurado de objetos de estado de pipeline (PSO) sobre o desenvolvedor. Também pressupõe que o mecanismo seja capaz de lidar com o suporte de cache para drivers diferentes no mesmo hardware de GPU.

Como prática recomendada, recomendamos implementar primeiro o cache baseado em driver, porque isso não requer um entendimento profundo de como o cache PSO é implementado para o determinado mecanismo.

Com essas implementações, os arquivos de sombreamento podem ser exportados e empacotados com seu aplicativo para que não precisem ser gerados a cada novo início de stream.

Para implementar uma correção de cache baseada em driver para um aplicativo de tempo de execução do Windows
  1. Comece a transmitir seu aplicativo padrão e reproduza-o extensivamente para gerar sombreadores para o aplicativo.

    Importante

    Não deixe de visitar todas as áreas ou níveis do ambiente para gerar o maior número possível de shaders.

  2. Antes de fechar a transmissão, habilite o recurso de exportação em sua sessão de transmissão ativa. Para obter detalhes, consulte Exportar arquivos de sessão de stream.

  3. Feche seu aplicativo normalmente saindo do menu do aplicativo ou usando os comandos de desligamento do aplicativo. Isso garante que o cache do sombreador esteja pronto para exportação.

  4. Faça o download do arquivo.zip de exportação da sessão de streaming do bucket do Amazon S3 que você especificou ao ativar o recurso de exportação. Você pode encontrar um link para download no console do Amazon GameLift Streams na página Sessões.

  5. Localize a pasta de sombreamentos na exportação da sessão de stream. Geralmente é salvo neste local:AppData\Local\NVIDIA\DXCache. Faça upload dos arquivos de sombreamento gerados (*.nvph) para o bucket Amazon S3 do seu aplicativo.

  6. Crie um .bat arquivo que copiará os arquivos do sombreador para a pasta de cache da NVIDIA em tempo de execução. Essa pasta geralmente está localizada em:C:\Users\Administrator\AppData\Local\NVIDIA\DXCache. Faça o upload do .bat arquivo para o bucket do aplicativo Amazon S3.

  7. Crie um novo aplicativo Amazon GameLift Streams com o .bat arquivo como caminho executável.

Quando o aplicativo iniciar o streaming, seu .bat arquivo copiará os sombreadores pré-gerados para o cache de sombreamento antes de iniciar o aplicativo, melhorando o desempenho do carregamento do stream.

nota

Talvez seja necessário repetir essas etapas sempre que atualizar seu aplicativo ou vincular o aplicativo Amazon GameLift Streams a um novo grupo de streams. Grupos de stream mais novos podem conter drivers de GPU atualizados do serviço.

O .bat arquivo de exemplo a seguir pressupõe que os arquivos de sombreamento estejam armazenados sob o prefixo de bucket do Amazon S3. Shaders\ Você pode usar uma estrutura de pastas diferente.

@echo off set CURRENT_PATH=%cd% set DXCACHE_DIR=%CURRENT_PATH%\Shaders set NVIDIA_DXCACHE_DIR=C:\Users\Administrator\AppData\Local\NVIDIA\DXCache if not exist "%NVIDIA_DXCACHE_DIR%" ( mkdir "%NVIDIA_DXCACHE_DIR%" ) xcopy /s /f "%DXCACHE_DIR%" "%NVIDIA_DXCACHE_DIR%" start %CURRENT_PATH%\app.exe
Para implementar uma correção de cache baseada em driver para um aplicativo de tempo de execução do Proton
  1. Comece a transmitir seu aplicativo padrão com a seguinte substituição de variável de ambiente:

    "__GL_SHADER_DISK_CACHE_PATH" : "/home/unpriv/games"
  2. Jogue o aplicativo extensivamente para gerar sombreadores.

    Importante

    Não deixe de visitar todas as áreas ou níveis do ambiente para gerar o maior número possível de shaders.

  3. Antes de fechar a transmissão, habilite o recurso de exportação em sua sessão de transmissão ativa. Para obter detalhes, consulte Exportar arquivos de sessão de stream.

  4. Feche seu aplicativo normalmente saindo do menu do aplicativo ou usando os comandos de desligamento do aplicativo. Isso garante que o cache do sombreador esteja pronto para exportação.

  5. Faça o download do arquivo.zip de exportação da sessão de streaming do bucket do Amazon S3 que você especificou ao ativar o recurso de exportação. Você pode encontrar um link para download no console do Amazon GameLift Streams na página Sessões.

  6. Localize as pastas e os arquivos dos shaders na exportação da sessão de stream:

    1. Pasta application\GLCache

    2. se o aplicativo usa DX11: arquivo application\path-to-exe\exe-name.dxvk-cache

    3. se o aplicativo usa DX12: arquivo application\path-to-exe\vkd3d-proton.cache.write

  7. Faça o upload dos arquivos de sombreamento gerados para o bucket Amazon S3 do seu aplicativo:

    1. Copie a GLCache pasta no diretório raiz do seu aplicativo.

    2. Se disponível, copie o arquivo .dxvk-cache ou o arquivo de vkd3d-proton.cache.write cache para a pasta que contém o executável do aplicativo.

  8. Crie um novo aplicativo Amazon GameLift Streams com a mesma configuração do Proton.

  9. Execute o aplicativo com a mesma substituição de variável de ambiente:

    "__GL_SHADER_DISK_CACHE_PATH" : "/home/unpriv/games"

Quando seu aplicativo iniciar o streaming, ele usará os sombreadores pré-gerados, melhorando o desempenho do carregamento do stream.

nota

Talvez seja necessário repetir essas etapas sempre que atualizar seu aplicativo ou vincular o aplicativo Amazon GameLift Streams a um novo grupo de streams. Grupos de stream mais novos podem conter drivers de GPU atualizados do serviço.

Para implementar uma correção de cache baseada em mecanismo para um aplicativo usando o Unreal Engine

Para essa abordagem, você pode usar os recursos do Unreal Engine para criar um cache de objeto de estado do pipeline (PSO) para seu aplicativo Amazon GameLift Streams. Um cache PSO permite que você forneça estados de pipeline de gráficos pré-compilados com tempos de compilação de tempo de execução reduzidos, o que pode reduzir os problemas durante o carregamento e a renderização. Isso requer conhecimento avançado do Unreal Engine e, portanto, não abordaremos todos os detalhes específicos do motor aqui. Para obter instruções adicionais, consulte a orientação do Unreal Engine em Criação de um cache PSO agrupado, seção “Fluxo de coleta”.

  1. Gere sombreadores para seu aplicativo que tenha o registro de PSO ativado.

    1. Crie um novo aplicativo Amazon GameLift Streams usando a compilação empacotada com o PSO-enabled aplicativo.

    2. Inicie um stream com o -logPSO comando em seu aplicativo de registro de PSO. Você pode usar a opção de argumentos da linha de comando na página de configuração do stream de teste no console do Amazon GameLift Streams.

      Importante

      Não deixe de visitar todas as áreas ou níveis do ambiente para gerar o maior número possível de shaders.

    3. Antes de fechar a transmissão, habilite o recurso de exportação em sua sessão de transmissão ativa. Para obter detalhes, consulte Exportar arquivos de sessão de stream.

    4. Saia do aplicativo pelo menu ou usando os comandos de desligamento do Unreal. Se você fechar o stream diretamente, o arquivo de pipeline de shaders do Unreal não será gerado.

    5. Faça o download do arquivo.zip de exportação da sessão de streaming do bucket do Amazon S3 que você especificou na etapa de exportação. Você pode encontrar um link para download no console do Amazon GameLift Streams na página Sessões.

  2. Package o arquivo de pipeline de shaders Unreal em seu aplicativo Amazon GameLift Streams.

    1. Localize os arquivos PSO gravados (rec.pipelinecache) na exportação da sessão de stream emSaved/CollectedPSOs. Descompacte os arquivos PSO usando comandos Unreal.

    2. Package uma nova compilação Unreal com a saída gerada da descompactação. Siga as orientações do Unreal, seções Conversão de caches de PSO e Inclusão de caches de PSO em seu aplicativo.

      Importante

      Ao executar o comando Unreal na seção “Conversão de caches PSO”, certifique-se de usar os mesmos arquivos de entrada da versão do driver. Por exemplo: para DX12, use somente os arquivos SM6 como entradas. Caso contrário, você receberá um erro ao empacotar o novo aplicativo.

    3. Crie um novo aplicativo Amazon GameLift Streams para a nova compilação empacotada com os arquivos PSO.

    4. Ao iniciar e testar streams, confirme se o cache PSO está sendo carregado. Verifique os registros do jogo para ver a seguinte linha:

      Opened FPipelineCacheFile: ../../...
nota

Talvez seja necessário repetir essas etapas sempre que atualizar seu aplicativo ou vincular o aplicativo Amazon GameLift Streams a um novo grupo de streams. Grupos de stream mais novos podem conter drivers de GPU atualizados do serviço.

Problemas de conectividade de streaming e desempenho de rede

Ao configurar seu serviço de back-end do Amazon GameLift Streams, verifique o seguinte:

  • Escolha o mais próximo Região da AWS possível do usuário final. A alta latência de seus clientes para a região que hospeda sua transmissão pode afetar a qualidade da transmissão. Consulte Regiões da AWS e locais de streaming suportados pelo Amazon GameLift Streams para obter uma lista de locais de onde você pode transmitir. Você pode executar ping nos endpoints do AWS console na região para obter uma medição aproximada da latência.

  • Verifique se seu grupo de streams tem capacidade para novos streams.

  • Verifique se ConnectionTimeoutSeconds está configurado de forma razoável para permitir que os usuários finais tenham tempo suficiente para se conectarem antes que o cliente web atinja o tempo limite.

Aconselhe seus usuários finais a verificarem o seguinte:

  • Garanta que os firewalls permitam o acesso ao intervalo de portas UDP 33435-33465 para permitir o streaming do Amazon Streams. GameLift Se o Amazon GameLift Streams não conseguir acessar essas portas, isso poderá causar problemas de streaming, como uma tela preta ou cinza.

  • Verifique se sua conexão com a Internet pode sustentar uma velocidade de conexão de pelo menos 10 Mbps para um stream de 1080p. Se você detectar problemas de rede enquanto joga no Amazon GameLift Streams, sua velocidade de internet pode estar flutuando e você pode não estar recebendo pelo menos 10 Mbps de forma consistente. Execute um teste de velocidade da Internet e continue com as etapas de solução de problemas.

  • Use uma rede com fio, se possível. Ao usar Wi-Fi, mova o dispositivo para perto do roteador para aumentar a intensidade do sinal.

  • Se você estiver usando um Wi-Fi roteador com bandas de 2,4 GHz e 5 GHz, tente se conectar a uma banda diferente. Se você não tiver certeza de como mudar o roteador para uma banda diferente, visite as páginas de suporte do fabricante ou fornecedor do Wi-Fi roteador. Você também pode entrar em contato com o atendimento ao cliente.

  • Identifique se outras pessoas na mesma rede (especialmente quando estão em casa Wi-Fi) estão executando aplicativos de alta largura de banda, como streaming de vídeo, download, jogos on-line ou backups.

  • Feche outros aplicativos em seu dispositivo que ocupam largura de banda.

  • Não use VPN ou proxy durante a transmissão. Eles podem causar latências mais altas e afetar a jogabilidade.

  • Verifique se você está usando redes celulares Wi-Fi em vez de redes celulares ao jogar em um iPad ou iPhone. Usar uma rede celular pode resultar em problemas de conectividade.

  • Os usuários do macOS devem desativar os Serviços de Localização, pois isso fará com que Wi-Fi eles parem de tempos em tempos, o que resultará em uma experiência de streaming ruim.

Problemas de entrada de stream

Esta seção identifica possíveis causas e soluções para problemas relacionados à entrada do usuário em uma sessão de stream.

Solução de problemas gerais de entrada

  • Teste para ver se o problema é específico do navegador. No geral, recomendamos o Google Chrome, o Microsoft Edge ou um aplicativo de Chromium-based desktop personalizado para a melhor experiência do usuário final e máxima compatibilidade, especialmente com controladores de jogos.

  • Registre eventos de entrada enviados pelo cliente e recebidos pelo aplicativo para identificar onde há uma incompatibilidade de entrada em seu código de front-end.

  • Certifique-se de verificar se Navegadores e entradas compatíveis há informações adicionais sobre navegadores e dispositivos de entrada compatíveis, incluindo problemas e limitações conhecidos.

As entradas de gamepad e microfone não funcionam em aplicativos Linux nativos

As entradas de gamepad e microfone não são suportadas em aplicativos Linux nativos. Consulte Navegadores e entradas compatíveis para obter informações adicionais sobre dispositivos de entrada compatíveis, incluindo problemas e limitações conhecidos.

A entrada principal parece travada no cliente macOS

Em clientes macOS, as teclas podem parecer repentinamente travadas quando a tecla modificadora de comando e outra tecla são pressionadas simultaneamente, repetindo o evento da tecla. Por exemplo, a tecla de seta pode ficar presa quando a tecla Command também é pressionada. Em um jogo, se as teclas de seta forem usadas para girar a câmera, isso fará com que a câmera gire sem parar.

  • Problema: a tecla Command no macOS mapeia para o evento da chave Meta, que mapeia para a tecla Windows no Microsoft Windows. O problema é um bug que afeta os navegadores macOS quando o Command e outra tecla são pressionados simultaneamente, em que a tecla Meta é redefinida quando liberada, mas a tecla de seta não é redefinida porque o navegador não capturou um evento de tecla para a tecla de seta, então o cliente do Web SDK não enviará um evento de tecla para o servidor e o aplicativo de streaming ainda pensará que a tecla está sendo pressionada.

  • Solução: Se você não estiver usando a tecla Command, poderá filtrá-la usando o mecanismo de filtro de teclado do Web SDK (keyboardFilter) encontrado na interface do Web SDK. InputConfiguration

Entrada bloqueada ao abrir elementos da interface do usuário do sistema operacional

Em clientes de navegadores de desktop e dispositivos móveis, eventos de entrada, como lançamentos de chaves, não são processados quando determinados elementos da OS-level interface do usuário têm prioridade. Isso pode fazer com que os personagens se movam ou as ações se repitam como se as teclas ainda estivessem pressionadas, mesmo que você as tenha soltado.

  • Problema: quando você abre determinados elementos da OS-level interface do usuário (como barras de menu do navegador no desktop ou Central de Controle e Central de Notificações no iOS), o navegador para de disparar eventos de entrada sem acionar eventos de desfoque ou foco. Isso faz com que o servidor continue recebendo o último estado de entrada. Essa é uma limitação no nível do navegador que não pode ser detectada de forma confiável.

  • Solução: use o modo de tela cheia em navegadores de desktop para impedir o acesso às barras de menu do navegador. Para usuários de iOS com teclados conectados, recomendamos criar um wrapper de aplicativo nativo com uma visualização na web em que o aplicativo nativo possa detectar e lidar melhor com a perda de foco, acionando explicitamente os eventos de foco e desfoque da janela do navegador. Como alternativa, use HTML de front-end ou elementos de interface do usuário do jogo para informar aos usuários que uma tecla ainda está pressionada e fornecer informações sobre essa limitação do iOS.

O movimento do mouse se comporta de maneira diferente no Amazon Streams GameLift

Se o movimento do mouse se comportar de forma diferente durante o streaming com o Amazon GameLift Streams, como se mover mais rapidamente do que o esperado, talvez seja necessário ajustar a lógica de manipulação do mouse e do cursor em seu aplicativo.

  • Problema: o Amazon GameLift Streams usa uma heurística para escolher se deseja transmitir eventos do mouse no modo “relativo” ou “absoluto”. No modo relativo, as novas atualizações do mouse são fornecidas como pequenas diferenças incrementais em relação à atualização anterior. No modo absoluto, o cursor do mouse é continuamente forçado para uma posição na tela que é sincronizada com o cliente. Quando o cursor do sistema operacional está visível sobre o conteúdo transmitido, a heurística sempre escolhe coordenadas absolutas. Isso pode causar deltas de movimento inesperadamente grandes se seu aplicativo estiver esperando atualizações pequenas e relativas.

  • Solução: Se seu aplicativo espera um movimento relativo do mouse (por exemplo, controles de FPS-style câmera ou interações baseadas em arrastar), oculte o cursor do sistema operacional durante as interações com o mouse. Por exemplo, esconda o cursor com o mouse para baixo e mostre-o novamente com o mouse para cima. Isso garante que os movimentos de arrasto usem coordenadas relativas, com a posição absoluta sincronizada somente quando o botão é solto.

Para obter mais informações sobre a movimentação do mouse no Amazon GameLift Streams, consulteManuseio do movimento do mouse.

Problemas na sessão de streaming

Esta seção identifica possíveis causas e soluções para problemas relacionados ao início ou término inesperado de uma sessão de stream.

A sessão de transmissão não inicia

Causas potenciais:

  • O aplicativo está travado ou travado. Consulte a Problemas do aplicativo seção para obter instruções de solução de problemas.

  • O status do grupo de transmissão não éActive. Verifique o status do grupo de streams.

  • On-demand a capacidade está demorando mais para aumentar do que o tempo limite especificado ConnectionTimeoutSeconds na StartStreamSessionAPI. No tempo de execução do Windows, o tempo de inicialização sob demanda pode levar 5 minutos ou mais.

  • Não há capacidade disponível no local de streaming. Verifique se a capacidade alocada é maior do que a capacidade em uso ou se você tem capacidade sob demanda que não está em uso (a capacidade alocada é menor do que a capacidade sempre ativa mais a capacidade sob demanda). No console, você pode encontrar esses valores na lista de grupos de stream ou na página de detalhes do grupo de stream. Usando a API de serviço, você pode encontrar esses valores usando GetStreamGroup. Alguns cenários em que a capacidade disponível está temporariamente em zero incluem o seguinte:

    • Se você acabou de aumentar a capacidade sempre ativa no local de streaming, aguarde alguns minutos até que a capacidade seja alocada.

    • Se você tiver apenas 1 capacidade disponível no local de streaming e seu cliente for desconectado inesperadamente, a sessão anterior ainda poderá estar desconectada. Aguarde alguns minutos até que a sessão atinja o tempo limite e tente novamente.

    • Se você adicionou recentemente um local ao seu grupo de stream e o aplicativo não existia no local, talvez o aplicativo não tenha concluído a replicação lá. Verifique o status da replicação na página de detalhes do grupo de stream no console. Como alternativa, você pode usar a GetApplicationAPI e verificar o ReplicationStatuses valor para verificar se é o local Status de streaming desejadoCOMPLETED.

  • As condições da rede são tão ruins que os quadros, especialmente o primeiro quadro, não estão sendo enviados. Verifique as condições da rede entre o cliente e o local de streaming e ajuste ou experimente um local diferente.

Sessão de transmissão encerrada

As sessões de streaming são encerradas automaticamente quando um aplicativo falha ou fecha, ou quando a conexão do cliente é perdida. As sessões também podem ser encerradas devido aos seguintes valores de tempo limite:

  • Tempo limite de posicionamento: valor de tempo limite para o Amazon GameLift Streams encontrar recursos computacionais para hospedar uma sessão de streaming.

  • Tempo limite de conexão: valor de tempo limite para um cliente se conectar ou se reconectar a uma sessão de streaming.

  • Tempo limite de inatividade: tempo máximo em que uma sessão de streaming pode ficar ociosa sem a intervenção do usuário.

  • Tempo limite da duração da sessão: tempo máximo para uma sessão de streaming.

Para obter uma explicação detalhada de cada tempo limite e seus possíveis valores, consulte. Valores de tempo limite que afetam as sessões de stream

Problemas do Web SDK

Esta seção identifica possíveis causas de problemas relacionados ao Amazon GameLift Streams Web SDK ao integrar o Amazon GameLift Streams à sua aplicação web.

Configuração de elementos de áudio para compatibilidade de dispositivos

Ao criar um novo GameLiftStreams objeto, recomendamos que você não forneça um elemento de áudio separado. Fornecer um elemento de áudio distinto é útil se você precisar de JavaScript controles específicos no áudio que não devem ser aplicados ao elemento de vídeo. No entanto, alguns dispositivos, como algumas TVs inteligentes, oferecem suporte a apenas um elemento de mídia em uma página da Web por vez. Fornecer um elemento de áudio separado pode causar falhas de reprodução nesses dispositivos.

O áudio não está sendo reproduzido quando a transmissão começa

Se o áudio não estiver sendo reproduzido quando a transmissão começar, verifique se os elementos de mídia não estão mudos. Alguns navegadores silenciam automaticamente elementos de mídia que não estão sendo reproduzidos ativamente. Navegadores diferentes têm políticas de reprodução automática diferentes que determinam quando os elementos de mídia são silenciados.

Para solucionar problemas de reprodução de áudio, verifique o seguinte:

  • Verifique se a muted propriedade do elemento de vídeo ou áudio está definida comofalse.

  • Certifique-se de que o volume no elemento de mídia não esteja definido como0.

  • Verifique a política de reprodução automática do seu navegador. Muitos navegadores exigem uma interação do usuário, como um clique, antes de permitirem a reprodução de mídia sem áudio.

  • Se você precisar de um retorno de chamada para quando a sessão estiver conectada, use clientConnection.connectionState no GameLiftStreams objeto. Isso fornece um retorno de chamada para quando a conexão entre pares faz a transição para um estado conectado.