Seleção de áudio

À medida que os usuários usam cada vez mais vários dispositivos de origem de áudio para realizar as tarefas diárias, há uma demanda crescente por uma solução mais simples para gerenciar o uso de fones de ouvido em vários dispositivos. A chave de áudio faz a transição perfeita das conexões do fone de ouvido entre dispositivos com base na atividade do usuário (por exemplo, iniciar um filme) e eventos priorizados (por exemplo, uma chamada recebida).

Princípios da UX

  1. A troca de conexão precisa ser rápida e baseada na ação do usuário.
  2. A troca de conexão precisa ser transparente para os usuários, permitindo que eles controlem/revertam se a troca não for desejada.
  3. A troca precisa respeitar a privacidade do usuário.

Papéis

Procurador de seleção de áudio: o procurador é um dispositivo de fonte de áudio (por exemplo, um smartphone ou tablet) que procura um fone de ouvido por perto para se conectar, quando aplicável.

Provedor de alternância de áudio: normalmente, é um fone de ouvido que anuncia a presença e o status de conexão para que os buscadores tomem decisões de troca.

Visão geral dos requisitos

Para fazer a troca inteligente, os provedores precisam atender aos seguintes requisitos:

Nome Descrição Requisitos Obrigatório?
Verificação de página Aceitar uma nova solicitação de conexão de outro solicitante quando houver uma conexão existente.
Para provedores de ponto único:
  • O dispositivo de origem original pausa automaticamente a reprodução de áudio quando o provedor está se desconectando.
Para provedores multiponto:
  • Se ainda houver uma conexão disponível, ela vai aceitar a solicitação de conexão.
  • Se a largura de banda de conexão estiver cheia, desconecte a conexão menos usada recentemente (por exemplo, sem evento de áudio por um longo período) e aceite a nova solicitação recebida.
O modo de verificação de página de baixa latência (o intervalo de verificação não pode ser maior que 640 ms) é necessário para melhorar o desempenho.
Para fazer um ajuste entre a duração da bateria e o desempenho da troca, o provedor pode ter um modo de verificação de página padrão para a maioria dos casos (modo de baixo consumo de energia, o intervalo de verificação não pode ser maior que 1.280 ms). No entanto, o modo de baixa latência precisa ser usado nas seguintes situações:
  • Nos primeiros 30 segundos de inicialização
  • Primeiros 30 segundos sem conexão ou paginação
  • Primeiros 30 segundos de inatividade do dispositivo
Obrigatório
Histórico de conexão Para voltar à conexão anterior e retomar a reprodução, se aplicável.
A reversão será acionada por comunicações pelas APIs de fluxo de mensagens.
O evento de pausa do áudio precisa ser incluído no registro para retomar a reprodução, se aplicável.
Mantenha o histórico de conexão e implemente as APIs Message Stream. Obrigatório
Status da conexão Para que os buscadores façam o julgamento de troca de conexão.O status da conexão inclui:
  • Estado da conexão
  • Tipo de áudio da conexão ativa
  • Informações da conta da conexão ativa
  • Dispositivo(s) conectado(s)
Incluir o status de conexão na publicidade e no stream de mensagens de BLE. Obrigatório
Mudança nos recursos de execução A chave de áudio pode ser ativada atualizando o firmware no provedor. Portanto, os recursos precisam ser sincronizados entre o solicitante e o provedor no momento da execução. Implemente APIs do Message Stream para acessar os recursos do ambiente de execução. Obrigatório
Regras de comutação configuráveis Permitir que o Seeker configure a prioridade entre o streaming de áudio ativo atual e as novas solicitações de streaming de áudio usando as configurações de preferência do usuário.
Por exemplo, o Seeker de alternância de áudio pode fornecer configurações de IU para permitir/desativar a alternância automática entre o streaming de mídia e as chamadas.
O buscador de seleção de áudio vai definir e receber a regra de seleção por stream de mensagens.
Somente provedores multiponto.
Implemente APIs de fluxo de mensagens para tornar as regras de alternância entre dispositivos conectados configuráveis.
Opcional
Troca de dispositivo ativo Permitir que o Audio switch Seeker simule a troca de áudio entre dispositivos conectados.
No lado do Audio switch Seeker, pode haver uma interface para que os usuários troquem facilmente entre dispositivos conectados.
Somente provedores multiponto.
Implemente as APIs de fluxo de mensagens para que o seletor de áudio determine a fonte de áudio ativa entre os dispositivos conectados.
Obrigatório
Notificação de troca de multiponto Permitir que o Seeker de seleção de áudio mostre a notificação de seleção. Somente provedores multiponto.
Implemente APIs de stream de mensagens para notificar os Seekers de alternância de áudio conectados quando uma alternância multiponto estiver ocorrendo.
Obrigatório

Payload de publicidade

O provedor precisa incluir o status de conexão atual no anúncio, baseado nos dados da conta do Fast Pair descritos em Publicidade: quando não detectável.

A versão da tabela 4.2 é 0x1.

Campo "Status da conexão"

Octeto Tipo de dado Descrição Valor Obrigatório?
0 uint8 Comprimento e tipo do campo
0bLLLLTTTT
  • L = comprimento do status de conexão em bytes
  • T = tipo
0bLLLL0101
  • duração: varia
  • type = 0b0101
Obrigatório
1 uint8 Estado da conexão
0bHAFRSSSS
  • H = Detecção na cabeça
  • A = disponibilidade de conexão
  • F = modo de foco
  • R = reconexão automática
  • S = estado da conexão
0bHAFRSSSS
Obrigatório
2 uint8 Dados personalizados
Atualmente, contém apenas o tipo de conteúdo usado para descrever o uso do streaming de áudio atual. O solicitante vai enviar para o provedor.
O valor é enviado do Seeker do streaming ativo atual para o provedor por stream de mensagens. 0 se o streaming ativo atual não for do Seeker. Obrigatório
3 - var Bitmap de dispositivos conectados
: um bitmap para mostrar quais dispositivos estão conectados ao provedor. Todos os dispositivos vinculados são organizados em ordem, um bit para cada dispositivo vinculado. A duração vai depender de quantos dispositivos vinculados do provedor existem.
O bit mapeado é definido como 1 se o dispositivo estiver conectado ao provedor. Caso contrário, ele será 0.
Consulte Bitmap do dispositivo conectado para mais detalhes.
Opcional

Tabela 4.1: dados brutos do campo "Status da conexão"

Flags de conexão
  • 0bH = detecção na cabeça

    • 1, na cabeça agora
    • 0, caso contrário, não está na cabeça ou não há um sensor de OHD
  • 0bA = disponibilidade de conexão

    • 1, há uma conexão disponível
    • 0, caso contrário
  • 0bF = modo de foco

    • 1.No modo de foco, agora a troca de conexão não é permitida para uso de mídia, ou seja, não há troca de A2DP para A2DP.
    • 0, caso contrário
  • 0bR = reconexão automática

    • 1, se a conexão atual for reconectada automaticamente pelo provedor, ou seja, não for conectada pelos usuários. Para multiponto, se uma das conexões existentes for reconectada automaticamente, ela será definida como 1.
    • 0, caso contrário
Estado da conexão
  • 0x0: nenhuma conexão
  • 0x1: paginação
  • 0x2: conectado, mas sem transferência de dados
  • 0x3: transferência de dados não relacionados a áudio (somente quando comutável, caso contrário, use 0xF)
  • 0x4: streaming A2DP, AVRCP não aplicável
  • 0x5: streaming A2DP e reprodução AVRCP
  • 0x6: streaming de HFP (chamada de telefone/VoIP), incluindo toque na banda e fora dela
  • 0x7: Áudio LE: streaming de mídia sem controle
  • 0x8: áudio LE: streaming de mídia com controle
  • 0x9: LE Audio: streaming de chamadas
  • 0xA: Áudio LE: transmissão
  • 0xF: desativa temporariamente a troca de conexão (por exemplo, atualização de firmware)
Estado da conexão e tipo de contexto de áudio LE

Recomendar que o provedor de áudio LE processe todos os tipos de contexto especificados em Números atribuídos 6.12.3, a menos que o provedor explicitamente não ofereça suporte a um determinado tipo de contexto, e mapeie o tipo de contexto para o estado de conexão, conforme abaixo.

  • Conversacional: 0x9
  • Mídia: 0x8
  • Jogo: 0x7
  • Instrutivo: 0x7
  • Assistentes por voz: 0x9
  • Ao vivo: 0x9
  • Efeitos sonoros: 0x2
  • Notificações: 0x2
  • Toque: 0x9
  • Alertas: 0x7
  • Alarme de emergência: 0x9

Para o cenário de tipo de contexto de áudio LE misto, como a reprodução de mídia durante a chamada, o provedor deve usar o estado de conexão com a maior prioridade, ou seja, usar 0x9 (chamada) para o cenário acima em vez de 0x8 (mídia).

Bitmap do dispositivo conectado

Para evitar a troca de conexão indesejada, o Seeker pode precisar saber a quais dispositivos o fone de ouvido está conectado. Por exemplo, quando o fone de ouvido está conectado ao smartphone, o usuário não quer ser interrompido pela mudança de conexão quando um dos membros da família inicia o YouTube no tablet.

Esse bitmap é anônimo, e o Seeker não consegue saber quais outros dispositivos estão vinculados ao provedor. Por exemplo, considere cinco dispositivos vinculados:

  • 0: laptop (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: tablet (0b000x0000)
  • 4: TV (0b0000x000)

Se os dispositivos conectados forem um laptop e um tablet, o valor do bitmap será 0b10010000. A mudança de ordem é aceitável se for inevitável, por exemplo, quando os usuários redefinirem o fone de ouvido para a configuração original ou quando a contagem de dispositivos vinculados atingir o limite máximo.

Anúncio solucionável aleatório

Para evitar o rastreamento e respeitar a privacidade do usuário, o provedor precisa alternar e criptografar o campo pela chave da conta usando AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

onde

  1. A chave é derivada da chave da conta em uso, que é definida na próxima seção.

    • A chave é gerada pela função HKDF, IETF RFC 5869, usando a função hash SHA-256.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • O provedor precisa usar a chave de conta original aqui, ou seja, o primeiro byte da chave é 0x04, não incluído no padrão de uso.

  2. O IV (vetor inicial) é o sal de 2 bytes dos dados da chave da conta com zero padding, ou seja, IV é concat(sal, 14-byte ZEROs).

  3. Os dados brutos do status de conexão são definidos na tabela 4.1. Se o status de conexão mudar, o sal e a RPA vão precisar ser regenerados no mesmo período de publicidade.

Isso faz com que o campo de status da conexão criptografada gire ao mesmo tempo que os dados da chave da conta.

O anúncio BLE será estruturado da seguinte maneira:

Octeto Tipo de dado Descrição Valor Obrigatório?
0 uint8 Versão e sinalizações 0x10 Obrigatório
1 - t Dados da chave da conta varia Obrigatório
t+1 - s Dados da bateria varia Opcional
s+1 - var Dados solucionáveis aleatórios varia Obrigatório se a lista de chaves da conta não estiver vazia,
caso contrário, excluído.

Tabela 4.2:anúncio BLE com dados solucionáveis aleatórios

Os dados solucionáveis aleatórios contêm:

Octeto Tipo de dado Descrição Valor Obrigatório?
0 uint8 Comprimento e tipo do campo
0bLLLLTTTT
  • L = comprimento dos dados criptografados
  • T = tipo
0bLLLL0110
  • duração: varia
  • type = 0b0110
Obrigatório
1 - var Dados criptografados varia Obrigatório

Tabela 4.2.1:dados solucionáveis aleatórios

Por exemplo, se os dados solucionáveis aleatórios contiverem um campo de status de conexão cifrado, o resultado descriptografado será o campo de status de conexão.

Para evitar adulterações, os dados da chave da conta acima precisam ser ligeiramente modificados quando os dados solucionáveis aleatórios forem incluídos no anúncio. Normalmente, ao criar o filtro de chave de conta, um valor V é produzido combinando o filtro de chave de conta com um sal. Em vez disso, quando os dados solucionáveis aleatórios também estão sendo anunciados, o valor V precisa ser criado como:

 V = concat(account_key, salt, random_resolvable_data)

Se os dados de bateria e os dados solucionáveis aleatórios estiverem sendo anunciados, V precisará ser criado da seguinte forma:

 V = concat(account_key, salt, battery_data, random_resolvable_data)

Chave da conta em uso

A troca de conexão é baseada na conta. Portanto, o provedor precisa incluir as informações da conta da conexão atual no anúncio de BLE. Se o dispositivo conectado atual for um Seeker de chaveamento de áudio, o provedor poderá receber a chave de conta associada a esse Seeker e usá-la para cifrar o campo de status de conexão. Se a fonte de áudio conectada não for um switch de áudio, o provedor vai precisar usar a chave de conta mais recente.

Antes de calcular o filtro de chave de conta, o provedor precisa modificar o primeiro byte das chaves de conta para incluir um dos seguintes padrões de uso:

  1. 0b00000100
    Esta chave de conta não está em uso.
    Esse é o padrão (consulte Chave da conta).
  2. 0b00000101
    Essa chave é a mais recente.
    O campo de status de conexão é criptografado por essa chave de conta. Não há informações de chave de conta do estado de conexão atual. Isso pode significar que não há dispositivos conectados ou que o dispositivo conectado não é um Seeker de alternância de áudio.
  3. 0b00000110
    Essa chave de conta é a chave em uso.
    O campo de status de conexão é criptografado por essa chave de conta, e o dispositivo conectado atual está associado a essa chave.

Esquema para payload de alternância de áudio

A figura abaixo mostra o esquema do payload do interruptor de áudio.

Mensagens

Quando conectados, o Seeker e o provedor podem usar o fluxo de mensagens para sincronizar o recurso de comutação de áudio, acionar uma mudança de conexão, definir e receber a preferência de comutação, notificar o status da conexão e assim por diante. Criamos um grupo de mensagens e códigos de mensagens específicos para o interruptor de áudio, conforme abaixo.

Nome do grupo de mensagens Valor
Troca de áudio 0x07

Mais detalhes sobre cada código de mensagem estão incluídos nas seções a seguir.

Nome do código da mensagem Valor Somente multiponto Remetente Responder Encrypt MAC CONF
Receber o recurso de seleção de áudio 0x10 N Ambos Ambos, pelo código 0x11 N N N
Notificar o recurso de seleção de áudio 0x11 N Ambos Ambos N S S
Definir o estado do multiponto 0x12 S Seeker Provedor N S S
Definir a preferência de troca 0x20 S Seeker Provedor N S S
Receber preferência de troca 0x21 S Seeker Provedor, pelo código 0x22 N N N
Notificar sobre a mudança de preferência 0x22 S Provedor Seeker N N N
Mudar a fonte de áudio ativa(para o dispositivo conectado) 0x30 S Seeker Provedor N S S
Voltar 0x31 N Seeker Provedor N S S
Notificar evento de comutação multiponto 0x32 S Provedor Seeker N N N
Receber o status da conexão 0x33 S Seeker Provedor, pelo código 0x34 N N N
Notificar o status da conexão 0x34 S Provedor Seeker S N N
Notificar a conexão iniciada pelo interruptor de áudio 0x40 N Seeker Provedor N S S
Indicar a chave da conta em uso 0x41 N Seeker Provedor N S S
Enviar dados personalizados 0x42 N Seeker Provedor N S S
Definir o destino da conexão de queda 0x43 S Seeker Provedor N S S

Tabela 4.3:mensagens de seleção de áudio

MAC das mensagens de seleção de áudio

Para fornecer autenticação de mensagens, todas as mensagens de chave de áudio com dados adicionais enviados do solicitante para o provedor exigem um código de autenticação de mensagem. Quando uma mensagem com MAC é recebida, ela precisa ser confirmada para que o solicitante saiba se o provedor reagiu à mensagem ou não.

Se a autenticação da mensagem for bem-sucedida, o provedor vai enviar o ACK para a mensagem:

Octeto Tipo de dados Descrição Valor
0 uint8 Confirmação 0xFF
1 uint8 CONF 0x01
2 a 3 uint16 Duração dos dados adicionais varia
4 uint8 Troca de áudio 0x07
5 uint8 Código da mensagem de seleção de áudio varia
6 - s Outros dados varia

Se falhar, o provedor vai enviar a NAK para a mensagem:

Octeto Tipo de dados Descrição Valor
0 uint8 Confirmação 0xFF
1 uint8 NAK 0x02
2 a 3 uint16 Duração dos dados adicionais 0x0003
4 uint8 Motivo do erro varia
5 uint8 Troca de áudio 0x07
6 uint8 Código da mensagem de seleção de áudio varia

Se o provedor for o remetente, o MAC não será necessário.

Receber o recurso de seleção de áudio

O provedor e o buscador do comutador de áudio podem verificar se o buscador/provedor do Fast Pair conectado oferece suporte ao comutador de áudio usando a mensagem abaixo:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Receber o recurso de seleção de áudio 0x10
2 a 3 uint16 Duração dos dados adicionais 0

Tabela 4.3.1.0:conferir o recurso de seleção de áudio

Notificar o recurso de seleção de áudio

Ao receber o código da mensagem get capability of Audio switch, o Seeker/provedor do Audio switch vai responder com uma das seguintes flags:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Notificar o recurso de seleção de áudio 0x11
2 a 3 uint16 Duração dos dados adicionais 20 se for enviado pelo candidato
4 se for enviado pelo provedor
4 - 5 uint16 Código da versão da seleção de áudio Um valor diferente de zero significa que ele oferece suporte à troca de áudio. O código da versão atual (com a melhoria de segurança) é 0x0102.
0x0000 ou nenhuma resposta em 1 segundo significa que o dispositivo não oferece suporte à troca de áudio
6 - 7 flags Flags de recursos de alternância de áudio do provedor
Se for enviado pelo Seeker, esses dois bytes serão ignorados.
varia
Consulte Flags de recursos de seleção de áudio.
8 a 15 Valor de uso único da mensagem
Somente obrigatório quando enviado pelo Seeker
varia
16 a 23 Código de autenticação de mensagem
Somente obrigatório quando enviado pelo Seeker
varia

Tabela 4.3.1.1:recurso de notificação da seleção de áudio

Flags de recursos de seleção de áudio
  1. Bit 0 (octeto 6, MSB): estado da seleção de áudio

    • 1, se o estado da seleção de áudio estiver ativado
    • 0, caso contrário
  2. Bit 1: capacidade de configuração multiponto

    • 1, se o dispositivo oferece suporte a multiponto e pode ser ativado e desativado
    • 0, caso contrário (não oferece suporte a multiponto ou multiponto está sempre ativado)
  3. Bit 2: estado atual multiponto

    • 1, se a conectividade multiponto estiver ativada
    • 0, caso contrário
  4. Bit 3: detecção no fone de ouvido

    • 1, se o dispositivo oferece suporte à detecção de uso (mesmo que ela esteja desativada no momento)
    • 0, caso contrário
  5. Bit 4: estado atual da detecção no dispositivo

    • 1, se a detecção no fone estiver ativada
    • 0, caso contrário (não oferece suporte à detecção auricular ou ela está desativada)
  6. Todos os outros bits são reservados, padrão 0.

Definir o estado multiponto

Em buscadores de chaves de áudio, podemos fornecer a configuração para que os usuários ativem/desativem a funcionalidade multiponto. O Seeker vai definir o estado multiponto para o provedor usando a mensagem abaixo:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Definir o estado multiponto 0x12
2 a 3 uint16 Duração dos dados adicionais 17
4 uint8 Estado multiponto 0: desativa a conexão multiponto
1: ativa a conexão multiponto
5 a 12 Valor de uso único da mensagem varia
13 a 20 Código de autenticação de mensagem varia

Tabela 4.3.1.2:definir o estado de multiponto

Definir a preferência de troca

Os comutadores de áudio podem modificar a preferência de comutação de multiponto e defini-la para o provedor usando a mensagem abaixo:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Definir a preferência de troca 0x20
2 a 3 uint16 Duração dos dados adicionais 18
4 flags Alterar a preferência varia
Consulte a flag de preferência de troca de multiponto.
5 Configurações avançadas de alternância
Este byte está reservado, o valor padrão é 0
varia
6 a 13 Valor de uso único da mensagem varia
14 a 21 anos Código de autenticação de mensagem varia

Tabela 4.3.2.0:definir a preferência de troca de janelas

Flag de preferência de alternância multiponto
  • Bit 0 (MSB): A2DP x A2DP (padrão 0)
  • Bit 1: HFP x HFP (padrão 0)
  • Bit 2: A2DP x HFP (padrão 0)
  • Bit 3: HFP x A2DP (padrão 1)
  • Bits 4 a 7: reservados
  • A imagem acima representa "nova solicitação de perfil" e "perfil ativo atual"
    • 0 para não trocar
    • 1 para alternar

Receber a preferência de alternância

Os buscadores de comutação de áudio podem consultar a preferência de comutação de multiponto do provedor usando a mensagem abaixo:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Acessar configuração de troca 0x21
2 a 3 uint16 Duração dos dados adicionais 0

Tabela 4.3.2.1:conferir a preferência de troca.

Notificar preferência de troca

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Notificar preferência de troca 0x22
2 a 3 uint16 Duração dos dados adicionais 2
4 flags Alternar flags de preferência varia
Consulte a flag de preferência de troca de multiponto.
5 Configurações avançadas de alternância
Este byte está reservado. O valor padrão deve ser 0
varia

Tabela 4.3.2.2:notificar a preferência de troca

Trocar a fonte de áudio ativa (para o dispositivo conectado)

Os buscadores de seleção de áudio podem solicitar que o provedor multiponto mude a fonte de áudio ativa entre os dispositivos conectados usando a mensagem abaixo:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Trocar a fonte de áudio ativa (para o dispositivo conectado) 0x30
2 a 3 uint16 Duração dos dados adicionais 17
4 flags Alternar flags de evento de origem de áudio ativa varia
Consulte Como alternar o evento de fonte de áudio ativo
5 a 12 Valor de uso único da mensagem varia
13 a 20 Código de autenticação de mensagem varia

Tabela 4.3.3.0:alternar a fonte de áudio ativa (para o dispositivo conectado)

Evento de troca da fonte de áudio ativa
  • Bit 0 (MSB): 1 alterna para este dispositivo, 0 alterna para o segundo dispositivo conectado
  • Bit 1: 1 retoma a reprodução ao mudar para o dispositivo após a troca. Caso contrário, será 0. A retomada da reprodução significa que o provedor envia uma notificação PLAY ao Seeker pelo perfil AVRCP. Se o estado anterior (antes da mudança) não for PLAY, o provedor vai ignorar essa flag.
  • Bit 2: 1 rejeita a SCO no dispositivo desconectado, 0, caso contrário
  • Bit 3: 1 desconecta o Bluetooth ao mudar de dispositivo, 0, caso contrário.
  • Bits 4 a 7: reservados.

Os buscadores de troca de áudio nem sempre sabem o estado corretamente. Por isso, é possível que o provedor receba uma mensagem "Mudar para este dispositivo" quando o buscador já é o dispositivo ativo. Nesse caso, para mostrar a interface correta no Seeker, o provedor pode enviar um NAK com o motivo do erro, 0x4: ação redundante do dispositivo.

Para um provedor de áudio LE com mais de um membro definido, o provedor precisa desconectar todos os membros do buscador. Caso contrário, a pilha Bluetooth do buscador será reconectada ao provedor.

Voltar (para o dispositivo desconectado)

Se a troca de conexão não for desejada, os usuários poderão reverter a troca. Em alguns casos, faz sentido restaurar a conexão de áudio para minimizar a interrupção. O solicitante vai usar a mensagem abaixo para acionar a reversão:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Voltar (para o dispositivo desconectado) 0x31
2 a 3 uint16 Duração dos dados adicionais 17
4 uint8 Voltar ao evento anterior varia
0x01: voltar
0x02: voltar e retomar a reprodução
5 a 12 Valor de uso único da mensagem varia
13 a 20 Código de autenticação de mensagem varia

Tabela 4.3.3.1:mudar de volta (para o dispositivo desconectado)

Para fazer uma troca de conexão, um provedor de ponto múltiplo pode encerrar a conexão com um dispositivo de origem de áudio e pausar a sessão de áudio na outra origem de áudio. Por exemplo, suponha que o fone de ouvido multiponto esteja conectado a um tablet e a um dispositivo de seleção de áudio de terceiros. O usuário está assistindo um vídeo no tablet quando recebe uma ligação no smartphone. O smartphone vai acionar uma troca de conexão no fone de ouvido, que precisa interromper a conexão do terceiro dispositivo para se conectar ao smartphone, além de pausar a sessão de mídia no tablet para receber o toque do smartphone. Se o usuário recusar a chamada, o smartphone poderá pedir que o fone de ouvido "volte e continue a reprodução". Ao receber essa solicitação, o fone de ouvido precisa se reconectar ao terceiro dispositivo e continuar a reprodução do vídeo pausado no tablet.

Notificar evento de mudança de multiponto

Para informar aos usuários sobre um evento de chaveamento multiponto, o Seeker de chaveamento de áudio pode mostrar uma notificação. O provedor precisa notificar os buscadores de chave de áudio conectados sobre o evento de troca.

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 O evento de notificação de
do provedor de comutação multiponto precisa ser enviado em cada comutação, incluindo a seleção de áudio para a seleção de áudio, a seleção de áudio para a seleção de áudio e a seleção de áudio para a seleção de áudio.
0x32
2 a 3 uint16 Duração dos dados adicionais varia
4 uint8 Motivo da troca
Esse valor precisa ser determinado com base no Estado da conexão. Para casos de uso de áudio LE, pode ser útil analisar o mapeamento entre o tipo de contexto de áudio LE e o estado da conexão. Por exemplo, o estado de conexão correspondente aos assistentes de voz é 0x9(áudio LE: streaming de chamadas). Portanto, o motivo da troca iniciada pelos assistentes de voz precisa ser 0x02.
varia
0x00: não especificado
0x01: mídia (por exemplo, streaming A2DP, streaming de mídia LEA)
0x02: chamada (por exemplo, streaming HFP, streaming de chamada LEA)
5 uint8 Dispositivo de destino varia
0x01: este dispositivo
0x02: outro dispositivo conectado
6 - n utf8 Nome do dispositivo de destino
se o dispositivo de destino for o Seeker de alternância de áudio, usando o nome para o qual o Seeker foi enviado. Caso contrário, use o nome do BT, se não for relevante, usando os dois últimos bytes do endereço.
varia

Tabela 4.3.3.2:notificar evento de comutação multiponto

Conferir o status da conexão

O solicitante pode receber o status atual da conexão do provedor:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Conferir o status da conexão 0x33
2 a 3 uint16 Duração dos dados adicionais 0

Tabela 4.3.3.3:conferir o status da conexão

Ao receber essa mensagem, o provedor deve responder com o código de mensagem 0x34, notificar o status da conexão.

Notificar o status da conexão

Conforme definido no payload de publicidade do BLE, para provedores multiponto, se o status da conexão mudar, exceto para mudar o pacote de publicidade, o provedor também precisará notificar os buscadores conectados que estão usando a mesma chave de conta sobre a mudança. Se o provedor estiver conectado a um Seeker de chaveamento de áudio e a um Seeker de chaveamento que não seja de áudio, se o Seeker de chaveamento que não seja de áudio estiver ativo, o provedor também precisará notificar o Seeker de chaveamento de áudio conectado sobre o status da conexão (usando a chave de conta do Seeker).

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Notificar o status da conexão 0x34
2 a 3 uint16 Duração dos dados adicionais varia
4 uint8 Flag de dispositivo ativo varia
0x00: o Seeker é passivo, e o dispositivo ativo está usando a mesma chave de conta
0x01: o Seeker é o dispositivo ativo
0x02: o Seeker é passivo, e o dispositivo ativo não é um Seeker de alternância de áudio.
5 - n Status da conexão criptografada varia
n+1 - n+8 Valor de uso único da mensagem varia

Tabela 4.3.3.4:notificar o status da conexão

Mensagem de status da conexão criptografada

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

em que:

Notificar a conexão iniciada pela seleção de áudio

Os provedores de seleção de áudio podem precisar saber se a troca de conexão é acionada pelo recurso para ter reações diferentes, por exemplo, desativar os ícones de áudio para eventos de seleção de áudio. O buscador envia uma mensagem para notificar o provedor de que essa conexão foi iniciada por um interruptor de áudio.

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Notificar a conexão iniciada pela seleção de áudio 0x40
2 a 3 uint16 Duração dos dados adicionais 17
4 uint8 Indicação de conexão iniciada pela seleção de áudio varia
0: essa conexão não foi acionada pelo interruptor de áudio
1: essa foi uma conexão iniciada pelo interruptor de áudio
5 a 12 Valor de uso único da mensagem varia
13 a 20 Código de autenticação de mensagem varia

Tabela 4.3.4.0:notificar a conexão iniciada pela seleção de áudio

Indicar a chave da conta em uso

Se várias chaves de conta no Buscador (por exemplo, vários usuários) estiverem associadas ao provedor, o Buscador vai usar a mensagem abaixo para indicar qual chave de conta está em uso.

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Indicar a chave da conta em uso 0x41
2 a 3 uint16 Duração dos dados adicionais 22
4 a 9 utf8 String em uso UTF8 ("em uso")
10 a 17 Valor de uso único da mensagem varia
18 a 25 Código de autenticação de mensagem varia

Tabela 4.3.4.1:chave da conta em uso indicada

Ao receber essa mensagem, o provedor pode saber qual chave de conta está em uso verificando o código de autenticação de mensagem.

Enviar dados personalizados

O Seeker de alternância de áudio ativo pode encapsular as informações (por exemplo, o uso de áudio) do fluxo de áudio em um byte de dados personalizado e enviá-las ao provedor usando a mensagem abaixo:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Enviar dados personalizados 0x42
2 a 3 uint16 Duração dos dados adicionais 17
4 uint8 Dados personalizados varia
5 a 12 Valor de uso único da mensagem varia
13 a 20 Código de autenticação de mensagem varia

Tabela 4.3.4.2:enviar dados personalizados

Ao receber os dados personalizados, o provedor vai atualizar o pacote de publicidade para incluir os dados personalizados. Para um provedor multiponto, ele também precisa notificar a mudança de status de conexão para outro Seeker conectado usando a mesma chave de conta.

Definir o destino da conexão de soltar

Em fones de ouvido multiponto, se a conexão preferida a ser descartada não for a menos usada recentemente, os buscadores de alternância de áudio poderão informar ao provedor qual dispositivo descartar usando a mensagem abaixo:

Octeto Tipo de dados Descrição Valor
0 uint8 Troca de áudio 0x07
1 uint8 Definir o destino da conexão de soltar 0x43
2 a 3 uint16 Duração dos dados adicionais 17
4 uint8 Dispositivo conectado de destino a ser descartado varia
1: este dispositivo
5 a 12 Valor de uso único da mensagem varia
13 a 20 Código de autenticação de mensagem varia

Tabela 4.3.4.3:definir o destino da conexão de descarte