You are viewing the Portuguese (Brazil) site, but your language preference is set to English. Switch to English site →

Menu

Sons e áudio no Flex

Há muitos motivos pelos quais você pode querer reproduzir um som no Flex UI (IU do Flex). Por exemplo:

  • Tocar para indicar uma tarefa de chamada recebida
  • Notificações de som para novas mensagens de chat
  • Som para indicar que os participantes ingressaram ou deixaram uma conferência

A API Flex AudioPlayerManager fornece um mecanismo para implementar sons como esses no Flex UI (IU do Flex).

API AudioPlayerManager

A API AudioPlayerManager suporta sons de reprodução, interrupção e interrupção do som.

Os sons são divididos em duas categorias:

  • A mídia repetível é reproduzida em um loop, como um toque de telefone que liga e desliga. A única maneira de parar a mídia repetível é chamar manualmente o método stop.
  • A mídia não repetível é reproduzida uma vez, como um bipe ou toque. Mídia não repetível para automaticamente após ser reproduzida uma vez.

A mídia a ser reproduzida é definida da seguinte forma:

export interface MediaData {
    url: string;
    repeatable: boolean;
}

Para reproduzir mídia, você deve especificar o URL onde o arquivo de mídia está localizado e declarar se o som pode ser repetido ou não:

const mediaId = Flex.AudioPlayerManager.play(
{
    url: "sound-url",
    repeatable: true
},
(error: AudioPlayerError) => {
    // handle error
}
);

Administrar erros

Se houver um erro durante a reprodução da mídia, uma notificação será exibida com o erro. Alguns erros possíveis incluem:

Erro Mensagem Causa
NotAllowed Não é possível reproduzir o som, pois as permissões para reprodução de mídia não foram dadas ou negadas. Para saber mais sobre como corrigir esse erro, vá para Documentos do Flex O usuário não interagiu com o local e o navegador não permite que o som seja reproduzido
InvalidMedia Não é possível reproduzir o som. A mídia fornecida é inválida.

A mídia fornecida não é válida; pode ser um tipo de arquivo incorreto, um caminho de URL incorreto ou um arquivo corrompido.

Outro Erro ao reproduzir mídia.

Outras exceções. Isso pode depender dos detalhes de implementação do navegador, da implementação do media player e assim por diante.

Interromper a reprodução de mídia

Para interromper a mídia, use o id de mídia retornado do método de reprodução (descrito acima):

Flex.AudioPlayerManager.stop(mediaId);

Silenciar mídia

Para ativar ou desativar o som, use o seguinte método:

Flex.AudioPlayerManager.toggleSound(true/false);

Silenciar ou ativar o som não interrompe a reprodução de mídia atual. As mídias continuarão sendo reproduzidas, mas com o volume zero.

Mídias repetíveis e não repetíveis

As mídias repetíveis e não repetíveis podem ser reproduzidas simultaneamente, mas só uma unidade de mídias repetíveis e uma unidade de mídias não repetíveis podem ser reproduzidas em determinado horário. Em geral, isso significa que você só pode ter duas unidades de mídias sendo reproduzidas ao mesmo tempo: uma unidade de mídias repetíveis e uma unidade não repetível.

Se as mídias forem repetíveis, as chamadas para Flex.AudioPlayerManager.play colocarão as mídias em fila e irão reproduzi‐las uma após a outra. Você pode parar uma unidade de mídia repetível que não esteja sendo reproduzida (mas que esteja enfileirada) para removê‐la da fila. Parar uma unidade de mídias repetíveis que está sendo reproduzida interromperá o som e reproduzirá a próxima unidade de mídias na fila (se a fila não estiver vazia).

Se a unidade de mídias não for repetível, ela será reproduzida somente se nenhuma outra unidade de mídias não repetível já estiver sendo reproduzida. Mídias não repetíveis não estão enfileiradas. Você pode interromper uma unidade de mídias não repetíveis que esteja sendo reproduzida para interromper o som.

Por exemplo, para reproduzir um som quando uma mensagem de chat é recebida:

Flex.Manager.getInstance().chatClient.on("messageAdded", () => {
    const mediaId = Flex.AudioPlayerManager.play({
        url: "sound-url",
        repeatable: true
    });
})

Resolução de problemas

Os navegadores, especialmente o Chrome, têm políticas rígidas que impedem a reprodução de som ou reprodução automática de mídias para guias ou guias de fundo que não tenham recebido entrada alguma do usuário (fonte: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes). Algumas situações típicas incluem:

  • Uma guia que foi atualizada e nunca recebeu a entrada do usuário
  • Uma aba com Flex em uma janela separada que foi reaberta automaticamente e nunca recebeu entrada do usuário
  • Uma guia que foi aberta há algum tempo e não recebeu foco por algum tempo
  • Uma guia entre outras guias que reproduz sons

Para que as mídias sejam reproduzidas, o agente deve interagir com o Flex UI (IU do Flex) primeiro. Os sons que foram acionados, mas não foram permitidos, começarão a ser reproduzidos assim que o agente interagir com o local.

  • As mídias repetíveis reproduzirão a primeira unidade de mídias que for acionada. Quando a primeira parar de reproduzir, a próximo na fila será reproduzida.
  • Mídias não repetíveis reproduzirão a primeira unidade de mídias que foi acionada e não foi interrompida.

Exemplos de cenários para mídias repetíveis

Screenshot 2019-08-14 at 19.04.57.png
Screenshot 2019-08-14 at 19.04.40.png

Exemplo de cenário para mídias não repetíveis

Screenshot 2019-08-14 at 19.05.33.png

Existem algumas soluções alternativas:

Chrome

  • Alterar a diretiva de reprodução automática: o agente pode atualizar a marcação da Diretiva de reprodução automática do Chrome para uma que não exija interação do usuário com um documento para reproduzir sons. Pode ser acessada de acordo na URI "chrome://flags/" > "Autoplay policy" (Diretiva de reprodução automática). Altere‐a para "No user gesture is required" (Nenhuma ação do usuário é necessária). Advertência: essa marcação se aplicará a todos os sites.
  • Permitir o nome de host: adicionar o nome de host em "chrome://settings/content/sound" para permitir a reprodução do som. Observação: isso não requer políticas corporativas.
  • Alterar políticas corporativas: adicione o nome de host à lista de nomes de host permitidos. Observação: isso requer políticas corporativas.

Firefox

Permitir nome de host: adicione o nome de host na lista de configurações de áudio about:preferences#privacy e permita que ele sempre reproduza o som.

Safari

Permitir som de reprodução automática para nome de host: no app Safari, escolha > Settings for This Website (Configurações para este site), em "Auto-Play" (Reprodução automática), selecione "Allow All Auto-Play" (Permitir toda a reprodução automática)

Classifique esta página:

Precisa de ajuda?

Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.

Obrigado pelo seu feedback!

Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

Enviando seu feedback...
🎉 Obrigado pelo seu feedback!
Algo deu errado. Tente novamente.

Obrigado pelo seu feedback!

thanks-feedback-gif