

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á.

# PlayAudio
<a name="play-audio"></a>

Reproduza um arquivo de áudio em qualquer parte de uma chamada. O áudio pode ser repetido quantas vezes quiser. O áudio em andamento pode ser finalizado usando os dígitos DTMF definidos em `PlaybackTerminators`.

Atualmente, o SDK do Amazon Chime só oferece suporte à reprodução de arquivos de áudio do bucket do Amazon Simple Storage Service (Amazon S3). O bucket do S3 deve pertencer à mesma AWS conta do aplicativo de mídia SIP. Além disso, você deve dar a permissão `s3:GetObject` à entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime. Isso pode ser feito usando o console do S3 ou a interface de linha de comandos (CLI).

O exemplo de código a seguir mostra uma política de bucket típica.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

O serviço de áudio lê e grava no seu bucket do S3 em nome do seu aplicativo de mídia Sip. Para evitar o [problema do substituto confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), você pode restringir o acesso ao bucket do S3 a um único aplicativo de mídia SIP.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

O exemplo de código a seguir mostra uma ação típica.

```
{
    "Type": "PlayAudio",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "PlaybackTerminators": ["1", "8", "#"],
        "Repeat": "5",
        "AudioSource": {
            "Type": "S3",
            "BucketName": "valid-S3-bucket-name",
            "Key": "wave-file.wav"
        }
    }
}
```

**CallID**  
*Descrição* – `CallId` do participante em `CallDetails`.  
*Valores permitidos*: um ID de chamada válido.  
*Obrigatório* – Não, se `ParticipantTag` estiver presente.  
*Valor-padrão*: nenhum.

**ParticipantTag**  
*Descrição* – `ParticipantTag` de um dos participantes conectados no `CallDetails`.  
*Valores permitidos*: `LEG-A` ou `LEG-B`.  
*Obrigatório* – Não, se `CallId` estiver presente.  
*Valor-padrão*: `ParticipantTag` do `callLeg` invocado. Ignorado se você especificar `CallId`.

**PlaybackTerminator**  
*Descrição* – Encerra o áudio em andamento usando a entrada DTMF do usuário  
*Valores permitidos*: uma matriz dos seguintes valores;“0”, ”1”, ”2”, ”3”, ”4”, ”5”, ”6”, ”7”, ”8”, ”9”, ”\$1”, ”\$1”  
*Obrigatório* – Não  
*Valor-padrão*: nenhum

**Repeat**  
*Descrição* – Repete o áudio o número especificado de vezes  
*Valores permitidos*: um número inteiro maior que zero  
*Obrigatório* – Não  
*Valor-padrão*: 1

**AudioSource.Type**  
*Descrição* – Tipo de fonte para o arquivo de áudio.  
*Valores permitidos*: S3.  
*Obrigatório* – Sim.  
*Valor-padrão*: nenhum.

**AudioSource.BucketName**  
*Descrição* — Para tipos de origem do S3, o bucket do S3 deve pertencer à mesma AWS conta do aplicativo SIP. O bucket deve ter acesso à entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime, que é voiceconnector.chime.amazonaws.com.  
*Valores permitidos*: um bucket S3 válido para o qual o SDK do Amazon Chime tem acesso à ação `s3:GetObject`.  
*Obrigatório* – Sim.  
*Valor-padrão*: nenhum.

**AudioSource.key**  
*Descrição* – Para tipos de origem do S3, o nome do arquivo do bucket do S3 especificado no atributo `AudioSource.BucketName`.  
*Valores permitidos*: um arquivo de áudio válido.  
*Obrigatório* – Sim.  
*Valor-padrão*: nenhum.

O aplicativo de mídia SIP tenta reproduzir o áudio do URL de origem. Você pode usar arquivos .wav PCM brutos e não compactados com tamanho não superior a 50 MB. O Amazon Chime SDK recomenda 8 mono. KHz 

Quando a última instrução em um plano de discagem é `PlayAudio` e o arquivo termina a reprodução, ou se um usuário interrompe a reprodução pressionando uma tecla, o aplicativo invoca a AWS Lambda função com o evento mostrado no exemplo a seguir.

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "valid-S3-bucket-name",
                "Key": "wave-file.wav",
         }           
     }
}
```

Depois que um dígito final interromper o áudio, ele não será repetido.

**Tratamento de erros**  
Quando o arquivo de validação contém erros ou ocorre um erro ao executar uma ação, o aplicativo de mídia SIP chama uma AWS Lambda função com o código de erro apropriado.


|  Erro  |  Mensagem  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  O do parâmetro da fonte de áudio é inválido.  |  Esse erro pode ocorrer por vários motivos. Por exemplo, o aplicativo de mídia SIP não pode acessar o arquivo devido a problemas de permissão ou problemas com o URL. Ou o arquivo de áudio pode falhar na validação devido ao formato, à duração, ao tamanho e assim por diante.  | 
|  `SystemException`  |  Erro do sistema ao executar a ação.  |  Ocorreu outro erro do sistema na execução da ação.   | 
|  `InvalidActionParameter`  |  CallId ou o ParticipantTag parâmetro para ação é inválido.  |  A ação contém um parâmetro inválido.  | 

O código do exemplo a seguir mostra uma falha de invocação típica.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 2,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file.wav"
            },
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        ...
    }
}
```

Veja exemplos de trabalho em GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging).
+ [https://github.com/aws-samples/amazon-chime-sma-call-encaminhamento](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notificações de chamadas](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-gravação de demanda](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-ligar](https://github.com/aws-samples/amazon-chime-sma-update-call)