> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sons de notificação

> Adicione sons de notificação personalizados a apps iOS, Android, Huawei e Amazon — incluindo formatos de arquivo, configuração do SDK e parâmetros de API.

Sons personalizados permitem que você ofereça uma experiência mais única e de marca no seu aplicativo. Você pode adicionar um som personalizado a cada notificação ou apenas a certos tipos. Por exemplo, um app social pode reproduzir um som distinto apenas para mensagens diretas para diferenciá-las das notificações do sistema.

<Warning>
  Apenas para aplicativos móveis. Sons personalizados não são suportados em push web.
</Warning>

## Configuração

### Criar arquivos de som

Crie arquivos de som seguindo os requisitos de plataforma abaixo. Se o dispositivo não conseguir encontrar o arquivo especificado ou o formato não for suportado, ele voltará ao som de notificação padrão do sistema.

<Note>
  Mantenha os nomes de arquivo de som em minúsculas, pois algumas plataformas ignoram letras maiúsculas para arquivos de som. Em vez de `AwesomeSound.wav`, use `awesomesound.wav` ou `awesome_sound.wav`.
</Note>

| Plataforma | Extensões             | Notas                                                                                                                                      |
| ---------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS        | `.wav` `.aiff` `.caf` | Sons devem ser codificados como Linear PCM, MA4 (IMA/ADPCM), µLaw ou aLaw. Devem ter menos de 30 segundos.                                 |
| Android    | `.wav` `.mp3` `.ogg`  | Duração recomendada menor que 30 segundos. Mantenha o tamanho do arquivo pequeno, arquivos grandes podem não tocar em alguns dispositivos. |
| Huawei     | `.wav` `.mp3` `.wma`  | Duração recomendada menor que 30 segundos. Mantenha o tamanho do arquivo pequeno, arquivos grandes podem não tocar em alguns dispositivos. |
| Amazon     | `.wav` `.mp3` `.ogg`  | Duração recomendada menor que 30 segundos. Mantenha o tamanho do arquivo pequeno, arquivos grandes podem não tocar em alguns dispositivos. |

### Adicionar arquivos de som ao aplicativo

Os arquivos de som devem ser incluídos como recursos dentro do seu aplicativo. URLs externas não são suportadas.

<Tabs>
  <Tab title="iOS">
    Adicione arquivos de som ao local apropriado no seu projeto Xcode, dependendo do seu SDK.

    | SDK            | Pasta                                                                                                                                                                                          |
    | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | iOS Native     | Adicione arquivos à raiz do projeto Xcode. Certifique-se de que **Add to targets** esteja selecionado ao adicionar arquivos para que sejam automaticamente adicionados aos recursos do bundle. |
    | Cordova, Ionic | Adicione arquivos ao diretório `Resources` dentro do projeto Xcode em `<project-root>/platforms/ios/project-name.xcodeproj`.                                                                   |
    | Unity          | Adicione sons em qualquer lugar no seu projeto Unity, compile seu projeto e, em seguida, mova esses sons para a raiz do projeto Xcode.                                                         |
  </Tab>

  <Tab title="Android, Huawei, and Amazon">
    Adicione arquivos de som à pasta apropriada no seu projeto, dependendo do seu SDK. **Se a pasta não existir, crie-a.**

    | SDK                            | Pasta                                                                                                                                                                               |
    | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Android, Huawei, Amazon Native | `res/raw`                                                                                                                                                                           |
    | React Native                   | `<project-root>/android/app/src/main/res/raw`                                                                                                                                       |
    | Cordova                        | `<project-root>/platforms/android/res/raw/`                                                                                                                                         |
    | Ionic                          | `/android/app/src/main/res/raw/`                                                                                                                                                    |
    | Unity                          | `Assets/Plugins/Android/OneSignalConfig/res/raw` *NOTA: Os nomes dos seus arquivos de som e ícone devem estar em minúsculas e não podem conter nada além de underscores e números.* |
    | Flutter                        | `main/res/raw`                                                                                                                                                                      |
    | .NET                           | `<project-root>/Platforms/Android/Resources/raw/`                                                                                                                                   |
  </Tab>
</Tabs>

### Enviar notificações

<Tabs>
  <Tab title="iOS">
    Inclua a extensão do arquivo ao referenciar o recurso de som (p. ex., `explode_sound.wav`). Defina o som no painel ao enviar mensagens push ou use a propriedade `ios_sound` da API [Create Notification](/reference/create-message).

    Para nenhum som, passe `nil` no campo **Sound**.

    <Frame caption="Configuração de um som personalizado para iOS no painel do OneSignal.">
      <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/a05af7e-Screenshot_2023-02-28_at_3.16.55_PM.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=9d33c9837ac9f67b0d6c6a7a87d03212" alt="OneSignal dashboard push composer showing the iOS Sound field" width="423" height="606" data-path="images/docs/a05af7e-Screenshot_2023-02-28_at_3.16.55_PM.png" />
    </Frame>
  </Tab>

  <Tab title="Android, Huawei, and Amazon">
    O Android 8+ introduziu [Categorias de Notificação](./android-notification-categories) que devem ser configuradas para personalizar sons de notificação. O OneSignal usa o som configurado no Canal de Notificação para todas as versões do Android.

    Em **Settings > Push & In-App > Android Notification Channels**, crie o grupo e o canal.

    <Frame caption="Criar um canal de notificação.">
      <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/8f39237-Screenshot_2023-02-28_at_3.11.52_PM.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=b18a97c1706dde194bd4e5c13cd9f593" alt="OneSignal dashboard showing the notification channel creation form" width="877" height="487" data-path="images/docs/8f39237-Screenshot_2023-02-28_at_3.11.52_PM.png" />
    </Frame>

    * Defina **Importance** como "Urgent" ou "High" para tocar som.
    * Defina **Sound** como "Default" ou "Custom" com base em suas necessidades. **Não** adicione a extensão do arquivo ao referenciar o recurso de som (p. ex., `cat_meow_sound`).
    * Para nenhum som, defina **Importance** como "Urgent" ou "High" e **Sound** como "Off". Ou defina **Importance** como "Medium" ou "Low" para nenhum som.

    <Frame caption="Configuração do som para um canal de notificação.">
      <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/f7950b6-Screenshot_2023-02-28_at_3.11.03_PM.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=88d88df41d360b190b4c083709e8119c" alt="OneSignal notification channel settings showing sound configuration options" width="429" height="498" data-path="images/docs/f7950b6-Screenshot_2023-02-28_at_3.11.03_PM.png" />
    </Frame>

    Você pode então definir o nome da categoria no painel ao enviar mensagens push ou usar as propriedades `android_channel_id` e `huawei_channel_id` da API [Create Notification](/reference/create-message). O som configurado na categoria funciona para todas as versões do Android.

    <Frame caption="Seleção da categoria de notificação no compositor de push.">
      <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/5e8625c-Screenshot_2023-02-28_at_3.15.19_PM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=c02f9a68fcb73b913a1de93e01d0f4aa" alt="OneSignal push composer showing the notification category dropdown" width="423" height="517" data-path="images/docs/5e8625c-Screenshot_2023-02-28_at_3.15.19_PM.png" />
    </Frame>
  </Tab>

  <Tab title="REST API">
    Você pode enviar notificações com sons via REST API usando o parâmetro apropriado para cada plataforma. Consulte a [referência da API Create Notification](/reference/push-notification) para todos os detalhes.

    | Plataforma | Parâmetro da API                                                                                                                                                                                                      | Detalhes                                                                                                |
    | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
    | iOS        | `ios_sound`                                                                                                                                                                                                           | Incluir extensão de arquivo. Exemplo: `"ios_sound": "explode_sound.wav"`. Para nenhum som, passe `nil`. |
    | Android    | `android_channel_id` — Use se você criou o canal no painel do OneSignal via [Categorias de Notificação](./android-notification-categories). `existing_android_channel_id` — Use se você criou o canal em outro lugar. | O uso de [Categorias de Notificação](./android-notification-categories) é recomendado.                  |
    | Huawei     | `huawei_channel_id` — Use se você criou o canal no painel do OneSignal via [Categorias de Notificação](./android-notification-categories). `huawei_existing_channel_id` — Use se você criou o canal em outro lugar.   | O uso de [Categorias de Notificação](./android-notification-categories) é recomendado.                  |
    | Amazon     | `adm_sound`                                                                                                                                                                                                           | Não incluir extensão de arquivo. Exemplo: `"adm_sound": "explode_sound"`.                               |
  </Tab>
</Tabs>

<Warning>
  Se você adicionou recentemente um recurso de som ao seu aplicativo, considere esperar alguns dias antes de enviar notificações que o utilizem. Pode levar dias ou semanas para que a maioria dos usuários atualize para a versão mais recente do aplicativo contendo o novo arquivo de som.

  Se um usuário tiver uma versão mais antiga sem o recurso de som e receber uma notificação que o referencia, ele ouvirá apenas o som de notificação padrão do sistema.
</Warning>

***

## FAQ

### Posso definir um som padrão?

Use um [Template](./templates) que referencia o som e/ou Canal de Notificação Android. Cada notificação enviada com esse template usará automaticamente o som configurado.

### Posso enviar diferentes sons de notificação para diferentes usuários?

Os parâmetros `ios_sound` e `android_channel_id` são de nível de requisição — eles se aplicam a **todos** os destinatários dessa chamada de API. Você não pode especificar sons diferentes para usuários diferentes em uma única requisição.

Para entregar sons diferentes a usuários diferentes, use um **padrão fan-out**: faça chamadas de API separadas para cada variante de som, segmentando usuários por tag ou segmento. Por exemplo, armazene o som preferido de cada usuário em uma [tag](./add-user-data-tags) como `preferred_sound`, depois envie uma requisição por valor de som.

<CodeGroup>
  ```json Request 1 — "chime" users theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "contents": {"en": "You have a new message!"},
    "ios_sound": "chime.wav",
    "android_channel_id": "CHIME_CHANNEL_ID",
    "include_filters": [
      {"field": "tag", "key": "preferred_sound", "relation": "=", "value": "chime"}
    ]
  }
  ```

  ```json Request 2 — "bell" users theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "contents": {"en": "You have a new message!"},
    "ios_sound": "bell.wav",
    "android_channel_id": "BELL_CHANNEL_ID",
    "include_filters": [
      {"field": "tag", "key": "preferred_sound", "relation": "=", "value": "bell"}
    ]
  }
  ```
</CodeGroup>

Cada requisição segmenta apenas os usuários cuja tag `preferred_sound` corresponde, então cada grupo ouve seu próprio som. Adicione quantas variantes precisar — uma chamada de API por som.

### Por que minha notificação não está tocando o arquivo de som personalizado?

Existem algumas causas comuns:

* O arquivo de som tem uma extensão de arquivo incorreta
* O arquivo de som não está codificado em um formato suportado
* O arquivo de som está no local errado no projeto
* O arquivo de som tem mais de 30 segundos

**iOS** — Leia mais na [documentação da Apple](https://developer.apple.com/documentation/usernotifications/unnotificationsound?language=objc) para orientações de codificação e teste.

**Android** — Verifique se o arquivo de som está incluído no seu APK extraindo-o e confirmando que existe em `res/raw/`.

Se a redução de recursos estiver habilitada, proteja os arquivos de som de serem removidos criando `keep.xml` em `res/raw/`:

```xml theme={null}
<resources xmlns:tools="http://schemas.android.com/tools"
  tools:keep="@raw/sound_file"/>
```

### Por que minha notificação está tocando o arquivo de som padrão?

Certifique-se de que você seguiu as instruções de configuração e o arquivo de som está no local correto para o seu SDK. Verifique as maiúsculas e minúsculas do nome do arquivo — algumas plataformas ignoram letras maiúsculas.

### Por que o som errado está tocando?

No Android, as notificações são agrupadas após um certo número ser recebido sem ser aberto. Notificações agrupadas tocam um som padrão. Você pode definir o som com a [chave de grupo](https://developer.android.com/training/notify-user/group) para todas as suas notificações.

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Categorias de notificação" icon="layer-group" href="./android-notification-categories">
    Configure os canais de notificação do Android para controlar som, vibração e importância.
  </Card>

  <Card title="Templates" icon="file-lines" href="./templates">
    Crie templates de notificação reutilizáveis com sons predefinidos.
  </Card>

  <Card title="API Create Notification" icon="code" href="/reference/push-notification">
    Referência de API para os parâmetros ios\_sound, android\_channel\_id e adm\_sound.
  </Card>

  <Card title="Ícones de notificação" icon="image" href="./notification-icons">
    Personalize os ícones de notificação para o seu app móvel.
  </Card>
</Columns>
