Interruptor de audio

A medida que los usuarios utilizan cada vez más dispositivos de fuente de audio para realizar sus tareas diarias, se incrementa la demanda de una solución más simple para administrar el uso de auriculares en todos los dispositivos. El cambio de audio cambia las conexiones de los auriculares sin problemas entre dispositivos según la actividad del usuario (p.ej., el inicio de una película) y los eventos priorizados (p.ej., una llamada entrante).

Principios de UX

  1. El cambio de conexión debe ser rápido y debe basarse en la acción del usuario.
  2. El cambio de conexión debe ser transparente para los usuarios, lo que debe permitir a los usuarios controlar o revertir si el cambio no es deseable.
  3. El cambio debe respetar la privacidad del usuario.

Roles

Buscador de interruptores de audio: El usuario es un dispositivo de fuente de audio (por ejemplo, un teléfono o una tablet) que busca auriculares cercanos para conectarse cuando corresponda.

Proveedor de Switch de Audio: Normalmente, el proveedor de auriculares es quien anuncia su presencia y conexión para que los usuarios puedan tomar decisiones de cambio.

Descripción general de los requisitos

Para lograr un cambio inteligente, los proveedores deben cumplir con los siguientes requisitos:

Nombre Descripción Requisitos ¿Obligatorio?
Escaneo de página Para aceptar una nueva solicitud de conexión de otro usuario que envía una solicitud, hay una conexión existente.
Para proveedores de un solo punto:
  • El dispositivo de origen original pausará automáticamente la reproducción de audio cuando el proveedor se desconecte.
Para proveedores multipunto:
  • Si todavía hay una conexión disponible, aceptará la solicitud de conexión.
  • Si el ancho de banda de la conexión está lleno, desconecta la conexión que se usó más recientemente (p.ej., no hubo ningún evento de audio durante mucho tiempo) y acepta la nueva solicitud entrante.
El modo de escaneo de página de baja latencia (el intervalo de búsqueda no debe superar los 640 ms) para mejorar el rendimiento.
Si quieres establecer una compensación entre la duración de la batería y el cambio de rendimiento, el proveedor puede tener un modo de análisis de página predeterminado para la mayoría de los casos (modo de bajo consumo, el de escaneo no debe superar los 1,280 ms). Sin embargo, el modo de latencia baja debe usarse en los siguientes casos:
  • Encender 30 segundos
  • Primeros 30 segundos sin conexión ni paginación
  • Primeros 30 segundos de inactividad del dispositivo
Obligatorio
Historial de conexiones Si quieres volver a la conexión anterior y reanudar la reproducción (si corresponde),
las comunicaciones a través de las API de flujo de mensajes activarán el cambio.
Si corresponde, debes incluir el evento de pausa de audio para reanudar la reproducción.
Mantener el historial de conexiones e implementar las API de Message Stream Obligatorio
Estado de conexión Para que los usuarios realicen la evaluación de cambio de conexión, el estado de la conexión incluye lo siguiente:
  • Estado de conexión
  • Tipo de audio de la conexión activa
  • Información de la cuenta de la conexión activa
  • Dispositivos conectados
Incluir el estado de conexión en los anuncios de BLE y en el flujo de mensajes Obligatorio
Cambio en las capacidades del entorno de ejecución El cambio de audio se puede habilitar mediante la actualización del firmware en el proveedor, por lo que las capacidades deben sincronizarse entre Seeker y el proveedor durante el tiempo de ejecución. Implementa las API de flujo de mensajes para acceder a las funciones del entorno de ejecución. Obligatorio
Reglas de cambio configurables Permite que Seeker configure la prioridad entre la transmisión de audio activa existente y las nuevas solicitudes de transmisión de audio mediante la configuración de preferencia del usuario.
Por ejemplo, es posible que el interruptor de audio proporcione a los usuarios una configuración de IU para habilitar o inhabilitar el cambio automático entre transmisión multimedia y llamadas.
El buscador de cambios de audio establecerá y obtendrá la regla de cambio a través de la transmisión de mensajes.
Solo para proveedores de varios puntos.
Implementa las API de flujo de mensajes para que se pueda configurar el cambio de reglas entre dispositivos conectados.
Opcional
Cambio de dispositivo activo Permite que el interruptor de Audio busque simuladors para el cambio de audio entre dispositivos conectados.
En el lado del interruptor de audio, es posible que haya una IU para que los usuarios cambien fácilmente entre los dispositivos conectados.
Solo para proveedores de varios puntos.
Implementa las API de flujo de mensajes para el interruptor de audio. Usa esta opción para determinar la fuente de audio activa entre dispositivos conectados.
Obligatorio
Notificación de cambio de puntos múltiples Permite que el buscador de audio muestre la notificación de cambio. Solo para proveedores de varios puntos.
Implementa las API de flujo de mensajes para notificar a quienes buscan el cambio de audio conectados cuando se produce un cambio de varios puntos.
Obligatorio

Carga útil publicitaria

El Proveedor deberá incluir su estado de conexión actual en el anuncio, compilado a partir de los datos de la Cuenta de Vinculación Rápida que se describen en Publicidad: Cuando no se pueda detectar.

Ten en cuenta que la versión de la tabla 4.2 es 0x1.

Campo de estado de conexión

Octeta Tipo de dato Descripción Valor ¿Obligatorio?
0 uint8 Longitud y tipo del campo
0bLLLLTTT
  • L = Longitud del estado de conexión en bytes
  • T = tipo
0bLLLL0101
  • longitud: varía
  • tipo = 0b0101
Obligatorio
1 uint8 Estado de conexión
0bHAFRSSSS
  • H = con detección de la cabeza
  • A = disponibilidad de conexión
  • F = Modo sin distracciones
  • R = reconectado automáticamente
  • S = estado de conexión
0bHAFRSSSS
Obligatorio
2 uint8 Datos personalizados
Actualmente, solo contiene el tipo de contenido que se usa para describir el uso de la transmisión de audio actual. El buscador la enviará al proveedor.
El valor se envía al buscador de la transmisión activa actual al proveedor a través del flujo de mensajes. 0 si la transmisión activa actual no es de Seeker. Obligatorio
3: var Mapa de bits de dispositivos conectados
Un mapa de bits para mostrar qué dispositivos están conectados actualmente al proveedor. Todos los dispositivos unidos se organizan en orden, uno para cada uno. La longitud dependerá de la cantidad de dispositivos unidos del Proveedor.
El bit asignado a 1 si el dispositivo está conectado al proveedor actualmente es 0.
Consulta Mapa de bits de dispositivo conectado para obtener más información.
Opcional

Tabla 4.1: Datos sin procesar del campo de estado de conexión

Marcas de conexión
  • 0 bH = detección de cabeza

    • 1, en la cabeza ahora
    • 0; de lo contrario, no está en la cabeza o no hay sensor OHD
  • 0bA = disponibilidad de conexión

    • 1, hay una conexión disponible
    • 0; de lo contrario,
  • 0bF = Modo sin distracciones

    • 1, en modo enfocado ahora, no se permite el cambio de conexión para el uso de medios; es decir, no hay cambio de A2DP a A2DP
    • 0; de lo contrario,
  • 0bR = conectado automáticamente

    • 1, si el proveedor vuelve a conectar automáticamente la conexión actual, lo que significa que los usuarios no la conectan (para varios puntos, si una de las conexiones existentes se vuelve a conectar automáticamente, se debe configurar en 1)
    • 0; de lo contrario,
Estado de conexión
  • 0x0: Sin conexión
  • 0x1: paginación
  • 0 x 2: conectado, pero sin transferencia de datos
  • 0x3: Transferencia de datos que no son de audio (solo cuando se puede cambiar, si no, con 0xF)
  • 0x4: Transmisión A2DP, AVRCP no aplicable
  • 0x5: Transmisión A2DP y reproducción AVRCP
  • 0x6: transmisión HFP (llamada telefónica/voip), incluidos los tonos de banda integrados y los que no lo son
  • 0x7: Audio de bajo consumo (transmisión multimedia sin control)
  • 0x8: Audio de bajo consumo. Transmisión multimedia con control
  • 0x9: Audio de bajo consumo
  • 0xA: audio de bajo consumo
  • 0xF: Inhabilitar temporalmente el interruptor de conexión (por ejemplo, actualización de firmware)
Mapa de bits de dispositivos conectados

Para evitar el cambio de conexión no deseado, es posible que el Seeker deba saber con qué dispositivos está conectado el visor. Por ejemplo, cuando los auriculares están conectados al teléfono, el usuario no desea que lo interrumpa la conexión que cambia cuando uno de sus miembros inicia YouTube en la tablet.

Ten en cuenta que este mapa de bits es anónimo, el buscador no puede saber qué otros dispositivos están vinculados con el proveedor. Por ejemplo, tomemos 5 dispositivos unidos:

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

Si los dispositivos conectados actuales son una laptop y una tablet, el valor del mapa de bits será 0b10010000. El cambio de orden es aceptable si es inevitable, p.ej., cuando los usuarios restablecen la configuración de fábrica de los auriculares o cuando la cantidad de dispositivos vinculados alcanza el límite superior.

Anuncio reutilizable aleatorio

Para evitar el seguimiento y respetar la privacidad del usuario, el proveedor debe rotar y encriptar el campo según la clave de la cuenta con AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

donde

  1. La clave se deriva de la clave de la cuenta en uso, que se define en la siguiente sección.

    • La clave se genera mediante la función de HKDF, IETF RFC 5869, mediante la función de hash SHA-256.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)         
      
    • El proveedor debe usar la clave de cuenta original aquí, es decir, el primer byte de la clave es 0x04, no se incluye en el patrón de uso.

  2. IV (vector inicial) es la sal de 2 bytes de los datos de clave de cuenta con cero relleno, es decir, IV es concat(salt, 14 bytes ZERO).

  3. Los datos sin procesar del estado de conexión se definen en la tabla 4.1; si cambia el estado de la conexión, la sal y el RPA se deben volver a generar en el mismo período de publicidad.

Esto hace que el campo de estado de la conexión encriptada rote al mismo tiempo que los datos de la clave de la cuenta.

La publicidad en BLE estará estructurada de la siguiente manera:

Octeta Tipo de dato Descripción Valor ¿Obligatorio?
0 uint8 Versión y marcas 0 × 10 Obligatorio
1: t Datos clave de la cuenta varía Obligatorio
t+1: s Datos de la batería varía Opcional
s+1: var Datos resolubles aleatorios varía Obligatorio si la lista de claves de la cuenta no está vacía;
de lo contrario, se excluye.

Tabla 4.2: Anuncio BLE con datos que se pueden resolver aleatoriamente

Los datos aleatorios reutilizables contienen lo siguiente:

Octeta Tipo de dato Descripción Valor ¿Obligatorio?
0 uint8 Longitud y tipo del campo
0bLLLLTTT
  • L = longitud de los datos encriptados
  • T = tipo
0bLLLL0110
  • longitud: varía
  • tipo = 0b0110
Obligatorio
1: var Datos encriptados varía Obligatorio

Tabla 4.2.1: Datos aleatorios resolubles

Como ejemplo, si los datos aleatorios aleatorios contienen un campo de estado de conexión encriptado, el resultado desencriptado será el campo de estado de conexión.

Para evitar la manipulación, los datos clave de la cuenta anteriores deben modificarse levemente cuando se incluyan los datos aleatorios aleatorios en el anuncio. Por lo general, cuando se crea el filtro de clave de cuenta, se produce un valor V si se combina el filtro de clave de cuenta con una sal. En cambio, cuando se anuncian datos aleatorios aleatorios, el valor V debe construirse de la siguiente manera:

 V = concat(account_key, salt, random_resolvable_data)

Si se anuncian datos de la batería y datos aleatorios aleatorios, V debe construirse de la siguiente manera:

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

Clave de la cuenta en uso

El cambio de conexión se basa en la cuenta, por lo que el proveedor debe incluir la información de la cuenta de la conexión actual en el anuncio BLE. Si el dispositivo conectado actual es un Seeker de cambio de audio, el proveedor debe poder obtener la clave de la cuenta asociada con este usuario y usarla para encriptar el campo de estado de la conexión. Si la fuente de audio conectada no es un buscador de interruptores de audio, el proveedor debe usar la clave de cuenta que se usó por última vez.

Antes de calcular el filtro de clave de cuenta, el proveedor debe modificar el primer byte de las claves de cuenta para incluir uno de los siguientes patrones en uso:

  1. 0b00000100
    Esta clave de cuenta no está en uso.
    Esta es la opción predeterminada (consulta Clave de la cuenta).
  2. 0b00000101
    Esta clave de la cuenta es la más reciente que se usó.
    El campo de estado de la conexión está encriptado por esta clave de cuenta. No hay información clave de la cuenta del estado de conexión actual. Podría significar que no hay dispositivos conectados o que el dispositivo conectado no es un buscador de interruptores de audio.
  3. 0b00000110
    Esta clave de la cuenta es la clave en uso.
    El campo de estado de la conexión está encriptado por esta clave de cuenta, y el dispositivo conectado actual está asociado a ella.

Esquema para la carga útil del cambio de audio

En la siguiente figura, se muestra el esquema de la carga útil del cambio de audio.

Mensajes

Cuando se conecta, el buscador y el proveedor pueden usar el flujo de mensajes para sincronizar la capacidad del interruptor de audio, activar un interruptor de conexión, establecer y obtener la preferencia de cambio, notificar el estado de la conexión, etcétera. A continuación, creamos un grupo de mensajes y códigos de mensaje específicos para el cambio de audio.

Nombre del grupo de mensajes Valor
Cambio de audio 0 × 07

En las siguientes secciones se incluyen detalles adicionales para cada código de mensaje.

Nombre del código del mensaje Valor Solo multipunto Remitente Respondedor Encriptar MAC Confirmación
Obtén la función de cambio de audio 0 × 10 N Ambos Ambos, mediante el código 0x11 N N N
Notificación de la función de cambio de audio 0 × 11 N Ambos Ambos N S
Configura el estado multipunto 0 × 12 Buscador Proveedor N S
Establece la preferencia de cambio 0 × 20 Buscador Proveedor N S
Obtener preferencia 0 × 21 Buscador Proveedor mediante código 0x22 N N N
Notificar la preferencia de cambio 0 × 22 Proveedor Buscador N N N
Cómo cambiar la fuente de audio activa(a un dispositivo conectado) 0 × 30 Buscador Proveedor N S
Volver al estado del dispositivo (desconectado) 0 × 31 N Buscador Proveedor N S
Notificar el evento de cambio de puntos múltiples 0 × 32 Proveedor Buscador N N N
Cómo obtener el estado de la conexión 0 × 33 Buscador Proveedor mediante código 0x34 N N N
Notificar el estado de la conexión 0 × 34 Proveedor Buscador N N
Notificar la conexión iniciada del interruptor de audio 0 × 40 N Buscador Proveedor N S
Cómo indicar en uso de la clave de cuenta 0 × 41 N Buscador Proveedor N S
Cómo enviar datos personalizados 0 × 42 N Buscador Proveedor N S
Establece un destino para la conexión de soltar 0 × 43 Buscador Proveedor N S

Tabla 4.3: Mensajes de cambio de audio

MAC de mensajes de cambio de audio

Para proporcionar la autenticación de mensajes, todos los mensajes de cambio de audio con datos adicionales que se envían desde Seeker al proveedor requieren un código de autenticación de mensajes. Cuando se recibe un mensaje con MAC, se debe confirmar para que el buscador sepa si el proveedor reaccionó o no al mensaje.

Si la autenticación de mensajes se realiza correctamente, el proveedor enviará el ACK al mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Declaración 0xFF
1 uint8 Confirmación 0 × 01
Entre 2 y 3 uint16 Longitud de datos adicionales varía
4 uint8 Cambio de audio 0 × 07
5 uint8 Código del mensaje de cambio de audio varía
6: s Datos adicionales varía

Si falla, el proveedor enviará el NAK para el mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Declaración 0xFF
1 uint8 NAK 0 × 02
Entre 2 y 3 uint16 Longitud de datos adicionales 0 x 0,003
4 uint8 Motivo del error varía
5 uint8 Cambio de audio 0 × 07
6 uint8 Código del mensaje de cambio de audio varía

Ten en cuenta que, si el proveedor es el remitente, no se requiere MAC.

Obtener la función del interruptor de Audio

Tanto el proveedor del interruptor de audio como el buscador pueden verificar si el buscador de pares de conexión rápida conectado/el proveedor admite el cambio de audio o no mediante el siguiente mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Obtener la función del interruptor de Audio 0 × 10
Entre 2 y 3 uint16 Longitud de datos adicionales 0

Tabla 4.3.1.0: Obtener capacidad del interruptor de Audio

Notificar la función de cambio de audio

Cuando reciba la capacidad de obtener capacidad del cambio de audio, el buscador de interruptores de audio o el proveedor responderán con una de las siguientes marcas:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Notificar la función de cambio de audio 0 × 11
Entre 2 y 3 uint16 Longitud de datos adicionales 20 si el remitente lo envía
4 si el proveedor lo envía
4 - 5 uint16 Código de la versión del cambio de audio Un valor distinto de cero significa que admite el cambio de audio. El código de la versión actual (con mejora de seguridad) es 0x0102.
0x0000 o ninguna respuesta en 1 segundo significa que el interruptor de audio no es compatible con este dispositivo
Entre 6 y 7 flags Indicadores de capacidad de cambio de audio del proveedor
Si el mensaje lo envía Seeker, se deben ignorar estos dos bytes.
varía
Consulta Marcas de función de cambio de audio
8 a 15 Nonce de mensaje
Solo se requiere cuando lo envía el usuario
varía
16 a 23 Código de autenticación de mensajes
Solo se requiere cuando lo envía el usuario
varía

Tabla 4.3.1.1: Notificación de la función de cambio de audio

Marcas de capacidad de cambio de audio
  1. Bit 0 (octet 6, MSB): Estado de cambio de audio

    • 1, si el estado del cambio de audio está activado
    • 0; de lo contrario,
  2. Bit 1: configuración de varios puntos

    • 1, si el dispositivo admite la multifunción y se puede alternar entre encender y apagar
    • 0; de lo contrario (no admite multipunto o multipunto siempre está activado)
  3. Bit 2: estado actual de varios puntos

    • 1, si multipunto está activado
    • 0; de lo contrario,
  4. Bit 3: Detección de cabeza

    • 1, si este dispositivo admite la detección de cabeza (incluso si la detección de cabeza está desactivada ahora).
    • 0; de lo contrario,
  5. Bit 4: estado actual de detección de cabeza

    • 1, si la detección de cabeza está activada
    • 0; de lo contrario (no es compatible con la detección de cabeza o la detección de cabeza está inhabilitada)
  6. Todos los demás bits se reservan; el valor predeterminado es 0.

Establecer el estado de varios puntos

En buscadores de cambio de audio, podemos proporcionar la configuración para que los usuarios activen o desactiven la funcionalidad de varios puntos. El buscador establecerá el estado multipunto en el proveedor mediante el siguiente mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Establecer el estado de varios puntos 0 × 12
Entre 2 y 3 uint16 Longitud de datos adicionales 17
4 uint8 Estado de varios puntos 0: apagar varios puntos
1: encender varios puntos
Entre 5 y 12 Nonce de mensajes varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.1.2: Configura el estado multipunto

Establecer preferencia de cambio

Los usuarios que buscan el cambio de audio pueden modificar la preferencia de cambio de multipunto y configurarla con el proveedor mediante el siguiente mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Establecer preferencia de cambio 0 × 20
Entre 2 y 3 uint16 Longitud de datos adicionales 18
4 flags Cambiar preferencia varía
Consulta la marca de preferencia de cambio de puntos múltiples
5 Configuración avanzada de cambio
Este byte está reservado, el valor predeterminado es 0
varía
Entre 6 y 13 Nonce de mensajes varía
14 a 21 Código de autenticación de mensajes varía

Tabla 4.3.2.0: Cómo configurar la preferencia de cambio

Marca de preferencia de cambio multipunto
  • Bit 0 (MSB): A2DP frente a A2DP (0 predeterminado)
  • Bit 1: HFP frente a HFP (valor predeterminado 0)
  • Bit 2: A2DP frente a HFP (valor predeterminado 0)
  • Bit 3: HFP frente a A2DP (valor predeterminado 1)
  • Bit 4 a 7: reservado
  • Arriba se indica como "solicitud de perfil nuevo" en comparación con "perfil activo actual"
    • 0 para no cambiar
    • 1 para cambiar

Obtener preferencia de cambio

Los usuarios que buscan el audio pueden cambiar la preferencia de cambio de multipunto del proveedor mediante el siguiente mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Obtener la configuración del cambio 0 × 21
Entre 2 y 3 uint16 Longitud de datos adicionales 0

Tabla 4.3.2.1: Obtener preferencia de cambio

Notificar preferencia de cambio

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Notificar preferencia de cambio 0 × 22
Entre 2 y 3 uint16 Longitud de datos adicionales 2
4 flags Cambio de marcas de preferencia varía
Consulta la marca de preferencia de cambio de puntos múltiples
5 Configuración avanzada de cambio
Este byte está reservado, el valor predeterminado debe ser 0
varía

Tabla 4.3.2.2: Notificar la preferencia de cambio

Cambiar fuente de audio activa (a dispositivo conectado)

Los usuarios que buscan el audio pueden cambiar la fuente de audio activa entre los dispositivos conectados usando el siguiente mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Cambiar fuente de audio activa (a dispositivo conectado) 0 × 30
Entre 2 y 3 uint16 Longitud de datos adicionales 17
4 flags Cambiar marcas de eventos de fuentes de audio activas varía
Consulta cómo cambiar el evento de fuente de audio activa
Entre 5 y 12 Nonce de mensajes varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.3.0: Cambia la fuente de audio activa (a un dispositivo conectado)

Cambiando evento de fuente de audio activa
  • Bit 0 (MSB): 1 interruptor a este dispositivo, 0 interruptor al segundo dispositivo conectado
  • Bit 1: 1 reanuda la reproducción en el dispositivo después de cambiar; 0, de lo contrario. Si se reanuda la reproducción, el proveedor envía una notificación de PLAY al usuario a través del perfil de AVRCP. Si el estado anterior (antes de cambiar) no era PLAY, el proveedor debería ignorar esta marca.
  • Bit 2: 1 rechaza el SCO en el dispositivo apagado; de lo contrario, 0
  • Bit 3: 1 desconecta Bluetooth en el dispositivo de apagado. De lo contrario, 0.
  • Bit 4 a 7: reservado.

Es posible que los usuarios que realizan búsquedas en cambio de audio no siempre conozcan su estado de forma correcta. Por lo tanto, es posible que el proveedor reciba un mensaje de "cambio en este dispositivo" cuando el usuario ya esté activo. En este caso, para mostrar la IU correcta en Seeker, el proveedor puede enviar un NAK con el motivo del error, 0x4: acción redundante del dispositivo.

Volver (al dispositivo desconectado)

Si el cambio de conexión no es deseado, los usuarios pueden revertir el cambio y, en ciertas situaciones, tiene sentido restablecer la conexión de audio para minimizar la interrupción. El buscador usará el siguiente mensaje para volver a activar el cambio:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Volver (al dispositivo desconectado) 0 × 31
Entre 2 y 3 uint16 Longitud de datos adicionales 17
4 uint8 Volver al evento anterior varía
0x01: volver atrás
0x02: volver atrás y reanudar la reproducción
Entre 5 y 12 Nonce de mensajes varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.3.1: Volver (al dispositivo desconectado)

Para los proveedores de varios puntos, a fin de hacer un cambio de conexión, un proveedor puede desconectar la conexión con un dispositivo de fuente de audio y pausar la sesión de audio en la otra fuente. Por ejemplo, supongamos que los auriculares multipunto están conectados a una tablet y un tercer dispositivo conmutador de audio compatible. El usuario mira el video en la tablet cuando hay una llamada entrante en su teléfono. El teléfono activará un interruptor de conexión en los auriculares, que deberá desconectar la tercera conexión del dispositivo para conectarse al teléfono, y también pausar la sesión multimedia en la tablet para obtener el tono del teléfono. Si el usuario rechaza la llamada, es posible que el teléfono le solicite a "los auriculares" que vuelvan a jugar y que vuelvan a jugar. Después de recibir esta solicitud, el visor debe volver a conectarse al tercer dispositivo y reanudar la reproducción del video pausado en la tablet.

Notificar evento de cambio de puntos múltiples

Para informar a los usuarios de que se está llevando a cabo un evento de varios puntos, el Buscador de cambio de audio puede mostrarles una notificación a los usuarios. El proveedor debe notificar a los usuarios que buscan el cambio de audio conectados sobre el evento de cambio.

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Notificar el evento de varios puntos
El proveedor debe enviarlo en todos los botones, incluidos el interruptor de Audio en buscador y el que no es de audio, el Buscador de cambio de audio en Buscador
0 × 32
Entre 2 y 3 uint16 Longitud de datos adicionales varía
4 uint8 Motivo del cambio varía
0 x 00: Sin especificar
0 x 01: Transmisión de A2DP
0 x 2: HFP
5 uint8 Dispositivo de destino varía
0x01: este dispositivo
0x02: otro dispositivo conectado
6: n Utf8 Nombre del dispositivo de destino:
Si el dispositivo de destino es Seeker, usa el nombre de Seeker en el que se envió el nombre. De lo contrario, usa el nombre de Bluetooth, si no corresponde. Usa los últimos 2 bytes de la dirección.
varía

Tabla 4.3.3.2: Notificar el evento de interruptor de varios puntos

Obtener estado de conexión

El usuario puede obtener el estado de conexión actual del proveedor:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Obtener estado de conexión 0 × 33
Entre 2 y 3 uint16 Longitud de datos adicionales 0

Tabla 4.3.3.3: Obtener el estado de la conexión

Cuando reciba este mensaje, el proveedor responderá con el código de mensaje 0x34 y notificará el estado de la conexión.

Notificar el estado de conexión

Según se define en la carga útil publicitaria de BLE, para los proveedores de puntos múltiples, si el estado de la conexión cambia, excepto para el cambio del paquete publicitario, el proveedor también debe notificar a los usuarios conectados que usan la misma clave de cuenta sobre el cambio. Si el proveedor está conectado con un buscador de botones de audio y otro con audio

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Notificar el estado de conexión 0 × 34
Entre 2 y 3 uint16 Longitud de datos adicionales varía
4 uint8 Marca de dispositivo activo varía
0 x 00: Este usuario es pasivo, y el dispositivo activo usa la misma clave de cuenta
0 x 01: el usuario activo es el dispositivo activo
0 x 2: el usuario es pasivo, y el dispositivo activo no es el interruptor de audio
5 a n Estado de conexión encriptada varía
n + 1: n + 8 Nonce de mensajes varía

Tabla 4.3.3.4: Cómo notificar el estado de la conexión

Mensaje de estado de conexión encriptado

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

Donde:

Notificar la conexión iniciada del interruptor de audio

Es posible que los proveedores de interruptores de audio necesiten saber si el cambio de conexión se activa por medio del cambio de audio para tener diferentes reacciones, p.ej., inhabilitar los íconos sonoros para eventos de cambio de audio. El usuario que envía el mensaje envía un mensaje para notificar al proveedor que esta conexión es una conexión iniciada por un interruptor de audio.

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Notificar la conexión iniciada del interruptor de audio 0 × 40
Entre 2 y 3 uint16 Longitud de datos adicionales 17
4 uint8 Indicación de conexión iniciada por el cambio de audio varía
0: esta conexión no se activó por medio del interruptor de Audio
1: esta fue una conexión iniciada por un interruptor de Audio
Entre 5 y 12 Nonce de mensajes varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.0: Notificar la conexión iniciada del interruptor de audio

Indicar clave de la cuenta en uso

Si hay varias claves de cuenta en el buscador (p.ej., usuarios múltiples) asociadas con el proveedor, el buscador usará el siguiente mensaje para indicar qué clave de cuenta está en uso.

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Indicar clave de la cuenta en uso 0 × 41
Entre 2 y 3 uint16 Longitud de datos adicionales 22
4 - 9 Utf8 String en uso UTF8 ("en uso")
10 a 17 Nonce de mensajes varía
18 a 25 Código de autenticación de mensajes varía

Tabla 4.3.4.1: Indica la clave en uso de la cuenta

Después de recibir este mensaje, el proveedor puede verificar qué clave de la cuenta está en uso mediante la verificación del código de autenticación del mensaje.

Enviar datos personalizados

El Buscador de cambio de audio activo puede encapsular la información (p.ej., uso de audio) de la transmisión de audio en un byte de datos personalizado y enviarla al proveedor usando el siguiente mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Enviar datos personalizados 0 × 42
Entre 2 y 3 uint16 Longitud de datos adicionales 17
4 uint8 Datos personalizados varía
Entre 5 y 12 Nonce de mensajes varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.2: Enviar datos personalizados

Cuando reciba los datos personalizados, el proveedor actualizará el paquete de publicidad para incluir los datos personalizados. En el caso de un proveedor de varios puntos, también debe notificar el cambio de estado de la conexión a otro Seeker conectado mediante la misma clave de cuenta.

Establecer destino para la conexión de la acción de soltar

En el caso de los auriculares multipunto, si la conexión preferida que quieres desconectar no es la menos usada recientemente, los usuarios que buscan el cambio de audio pueden indicarle al proveedor qué dispositivo debe soltar con el siguiente mensaje:

Octeta Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0 × 07
1 uint8 Establecer destino para la conexión de la acción de soltar 0 × 43
Entre 2 y 3 uint16 Longitud de datos adicionales 17
4 uint8 Dispositivo de destino desconectado varía
1: este dispositivo
Entre 5 y 12 Nonce de mensajes varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.3: Establecer destino para la conexión directa

Implementación de referencias

Consulta Biblioteca de SDK incorporada y cercana para ver la implementación de referencia.