Cambio de audio

Debido a que los usuarios utilizan cada vez más varios dispositivos de origen de audio para realizar sus tareas diarias, la demanda de una solución más simple para administrar los auriculares usar en todos los dispositivos. El cambio de audio permite una transición fluida de las conexiones de los auriculares entre dispositivos según la actividad del usuario (p.ej., al inicio de una película) y las prioridades eventos (por ejemplo, una llamada entrante).

Principios de UX

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

Funciones

Buscador de cambio de audio: El Seeker es un dispositivo de fuente de audio (por ejemplo, un un teléfono o una tablet), y buscar auriculares cercanos para conectarlos cuando corresponda.

Proveedor de cambio de audio: Por lo general, el proveedor es un auricular que anuncia su el estado de presencia y conexión para que los buscadores tomen decisiones relacionadas con el cambio.

Descripción general de los requisitos

Para lograr el 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 Seeker cuando ya existe una conexión.
Para proveedores de un solo punto, haz lo siguiente:
  • 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 menos se usó recientemente (p.ej., sin eventos de audio durante mucho tiempo) y acepta la nueva solicitud entrante.
Se requiere el modo de análisis de la página de baja latencia (el intervalo de análisis no debe superar los 640 ms) para mejorar el rendimiento.
Para compensar la duración de la batería y el rendimiento del cambio, el proveedor puede tener un modo de escaneo de página predeterminado en la mayoría de los casos (modo de bajo consumo; el intervalo de búsqueda no debe superar los 1, 280 ms). Sin embargo, debe usarse el modo de baja latencia en las siguientes situaciones:
  • Primeros 30 segundos de encendido
  • Primeros 30 segundos sin conexión o paginación
  • Primeros 30 segundos de inactividad del dispositivo
Obligatorio
Historial de conexiones Para volver a la conexión anterior y reanudar la reproducción, si corresponde.
El cambio se activará a través de las comunicaciones realizadas a través de las APIs de Message Stream.
El evento de audio de pausa debe incluirse en el registro para reanudar la reproducción, si corresponde.
Mantén el historial de conexiones y, además, implementa las APIs de Message Stream. Obligatorio
Estado de conexión Para que los buscadores puedan decidir si se cambia 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
Incluye el estado de conexión en el anuncio BLE y el flujo de mensajes. Obligatorio
Cambio de las capacidades del entorno de ejecución El cambio de audio se puede habilitar actualizando el firmware del proveedor, por lo que las capacidades deben sincronizarse entre el Seeker y el proveedor durante el tiempo de ejecución. Implementar las APIs 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 solicitudes nuevas de transmisión de audio mediante la configuración de preferencias del usuario.
Por ejemplo, el Searchker de cambio de audio puede proporcionar una configuración de la IU para permitir que los usuarios habiliten o inhabiliten el cambio automático entre la transmisión de contenido multimedia y las llamadas.
El Buscador de cambio de audio establecerá y obtendrá la regla de cambio a través de la transmisión de mensajes.
Solo para proveedores multipunto.
Implementa las APIs de Message Stream para que se puedan configurar las reglas de cambio entre dispositivos conectados.
Opcional
Cambio de dispositivos activos Permite que el Seeker del cambio de audio simule el cambio de audio entre dispositivos conectados.
En el lado del Buscador de cambio de audio, es posible que haya una IU para que los usuarios puedan cambiar fácilmente entre dispositivos conectados.
Solo para proveedores multipunto.
Implementa las APIs de transmisión de mensajes para el Buscador de cambio de audio para determinar la fuente de audio activa entre dispositivos conectados.
Obligatorio
Notificación de cambio multipunto Permite que el Buscador de cambio de audio muestre la notificación de cambio. Solo para proveedores multipunto.
Implementa las APIs de transmisión de mensajes para notificar a los buscadores con cambio de audio conectados cuando se produce un cambio multipunto.
Obligatorio

Carga útil de publicidad

El Proveedor incluirá su estado de conexión actual en el anuncio, basada en los datos de la cuenta de Vinculación rápida descritos en Publicidad: Cuando no es detectable.

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

Campo de estado de la conexión

Octeto Tipo de datos Descripción Valor ¿Obligatorio?
0 uint8 Longitud y tipo de campo
0bLLTTTT
  • L = longitud del estado de la conexión en bytes
  • T = tipo
0bLL0101
  • longitud: varía
  • tipo = 0b0101
Obligatorio
1 uint8 Estado de conexión
0bHAFRSSSS
  • H = detección de 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 utiliza para describir el uso de la transmisión de audio actual. El Buscador se lo enviará al Proveedor.
El buscador de la transmisión activa actual envía el valor 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
Es un mapa de bits para mostrar qué dispositivos están conectados actualmente al proveedor. Todos los dispositivos vinculados están organizados en orden: un bit para un dispositivo enlazado. La longitud dependerá de la cantidad de dispositivos vinculados que haya el proveedor.
El bit asignado se establece en 1 si el dispositivo está conectado al proveedor. De lo contrario, se establece en 0.
Consulta Mapa de bits de dispositivos conectados para obtener más información.
Opcional

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

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

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

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

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

    • 1, si el proveedor reconecta la conexión actual automáticamente; es decir, no está conectado por usuarios (para varios puntos, si uno de los conexiones se reconecta de manera automática, se debe establecer en 1)
    • 0; de lo contrario,
Estado de conexión
  • 0x0: sin conexión
  • 0x1: paginación
  • 0x2: conectado, pero sin transferencia de datos
  • 0x3: transferencia de datos que no son de audio (solo cuando se puede cambiar, si no, usando 0xF)
  • 0x4: transmisión A2DP, AVRCP no aplicable
  • 0x5: transmisión A2DP y reproducción de AVRCP
  • 0x6: transmisión HFP (llamada telefónica/voip), incluido el tono en banda y sin banda
  • 0x7: LE Audio - Transmisión de contenido multimedia sin control
  • 0x8: LE Audio - Transmisión de contenido multimedia con control
  • 0x9: LE Audio - Transmisión de llamadas
  • 0xA: LE Audio - transmisión
  • 0xF: Inhabilita el interruptor de conexión temporalmente (por ejemplo, actualización de firmware).
Tipo de contexto de audio de LE y estado de conexión

Se recomienda que el proveedor de audio de bajo consumo maneje todos los tipos de contexto especificados. en Números asignados 6.12.3 (a menos que el proveedor no admita explícitamente un tipo de contexto determinado) y mapea el tipo de contexto al estado de conexión, como se muestra a continuación.

  • De conversación: 0 × 9
  • Contenido multimedia: 0 × 8
  • Juego: 0×7
  • Instructivo: 0 × 7
  • Asistentes de voz: 0×9
  • En vivo: 0×9
  • Efectos de sonido: 0x2
  • Notificaciones: 0 × 2
  • Tono de llamada: 0 × 9
  • Alertas: 0x7
  • Alarma de emergencia: 0x9

Para la situación de tipo de contexto de LE Audio mixto, como la reproducción de contenido multimedia durante la el Proveedor deberá utilizar el estado de conexión con la prioridad más alta; es decir, el uso 0×9 (llamada) para el escenario anterior en lugar de 0×8 (medios).

Mapa de bits de dispositivo conectado

Para evitar cambios de conexión no deseados, es posible que el Searchker deba saber dispositivos a los que están conectados los auriculares. Por ejemplo, si los auriculares está conectado al teléfono, el usuario no quiere que lo interrumpa cambio de conexión cuando uno de sus miembros de la familia inicia YouTube en el tablet.

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

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

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

Anuncio con resolución aleatoria

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 mediante AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

en el que

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

    • La función HKDF, IETF RFC 5869, genera la clave con el modelo hash.

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

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

  3. Los datos sin procesar del estado de la conexión se definen en la tabla 4.1, si los cambios en el estado de conexión, la sal y la RPA deben regenerarse mismo período de publicidad.

Esto hace que el campo de estado de conexión encriptado rote al mismo tiempo que la Los datos clave de la cuenta rotan.

El anuncio de BLE se estructurará de la siguiente manera:

Octeto Tipo de datos 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 que se pueden resolver de manera aleatoria varía Obligatoria si la lista de claves de cuenta no está vacía;
de lo contrario,está excluida.

Tabla 4.2: Anuncio de BLE con datos que se pueden resolver de forma aleatoria

Los datos que se pueden resolver de forma aleatoria contienen lo siguiente:

Octeto Tipo de datos Descripción Valor ¿Obligatorio?
0 uint8 Longitud y tipo de campo
0bLLTTTT
  • L = longitud de los datos encriptados
  • T = tipo
0bLL0110
  • longitud: varía
  • tipo = 0b0110
Obligatorio
1: var Datos encriptados varía Obligatorio

Tabla 4.2.1: Datos resolubles aleatorios

A modo de ejemplo, si los datos que se pueden resolver de forma aleatoria contienen una conexión encriptada status, el resultado desencriptado será el campo de estado de conexión.

Para evitar la manipulación, se deben modificar ligeramente los datos clave de la cuenta anteriores cuando los Datos que se pueden resolver al azar se incluyen en el anuncio. Normalmente, cuando cuando se crea el filtro de claves de cuenta, se produce un valor V combinando las cuentas clave con una sal. En su lugar, cuando también se están procesando datos anunciado, el valor V debe construirse de la siguiente manera:

 V = concat(account_key, salt, random_resolvable_data)

Si se anuncian tanto datos de la batería como datos que se pueden resolver de forma aleatoria, V debe construirse de la siguiente manera:

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

Clave de cuenta en uso

El cambio de conexión se basa en la cuenta, por lo que el proveedor debe incluir el la información de la cuenta de la conexión actual en el anuncio de BLE. Si el botón el dispositivo conectado actual es un Buscador de cambio de audio, el proveedor debería poder para obtener la clave de cuenta asociada a este Seeker, y úsala para lo siguiente: encriptar el campo de estado de la conexión. Si la fuente de audio conectada no es de audio switch Seeker, el proveedor debe usar la clave de cuenta que se usó más recientemente.

Antes de calcular el filtro de claves 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 predeterminada (consulta Clave de la cuenta).
  2. 0b00000101
    Esta es la clave de cuenta que se usó más recientemente.
    El campo de estado de la conexión está encriptado con esta clave de cuenta. No hay la información clave de la cuenta del estado de conexión actual, podría significar que dispositivos conectados o el dispositivo conectado no es un Buscador de cambio de audio.
  3. 0b00000110
    Esta es la clave de la cuenta que está en uso.
    El campo de estado de la conexión está encriptado con esta clave de cuenta, y el estado El dispositivo conectado está asociado a esta clave de cuenta.

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 conectan, el Seeker y el proveedor pueden usar la transmisión de mensajes para sincronizar audio capacidad de cambiar de conexión, activar un interruptor de conexión, establecer y obtener el cambio preferencia, notificar el estado de conexión, etcétera. Creamos un grupo de mensajes y los códigos de mensaje específicos para el cambio de audio, como se muestra a continuación.

Nombre del grupo de mensajes Valor
Cambio de audio 0x07

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

Nombre del código del mensaje Valor Solo multipunto Remitente Persona que responde Encriptar MAC Conf.
Cómo permitir el cambio de audio 0 × 10 N Ambos Ambos, mediante el código 0x11 N N N
Cómo notificar la función de cambio de audio 0 × 11 N Ambos Ambos N S Y
Cómo establecer el estado de varios puntos 0 × 12 Y Buscador Proveedor N S Y
Cómo establecer la preferencia de cambio 0 × 20 Y Buscador Proveedor N S Y
Cómo cambiar tu preferencia 0 × 21 Y Buscador Proveedor, con el código 0x22 N N N
Notificar la preferencia de cambio 0 × 22 Y Proveedor Buscador N N N
Cambia la fuente de audio activa(al dispositivo conectado) 0 × 30 Y Buscador Proveedor N S Y
Volver a cambiar 0 × 31 N Buscador Proveedor N S Y
Notificar un evento de interruptor multipunto 0 × 32 Y Proveedor Buscador N N N
Obtén el estado de la conexión 0 × 33 Y Buscador Proveedor, con el código 0x34 N N N
Notificar el estado de conexión 0 × 34 Y Proveedor Buscador Y N N
Notificar una conexión iniciada para el cambio de audio 0 × 40 N Buscador Proveedor N S Y
Indicar la clave de la cuenta en uso 0 × 41 N Buscador Proveedor N S Y
Envía datos personalizados 0 × 42 N Buscador Proveedor N S Y
Establece el destino de conexión para soltar 0 × 43 Y Buscador Proveedor N S Y

Tabla 4.3: Mensajes de cambio de audio

MAC de mensajes de cambio de audio

Para proporcionar autenticación de mensajes, todos los mensajes de Cambiar audio con Los datos que se envían del Seeker al proveedor requieren un código de autenticación de mensajes. Cuándo un mensaje con MAC, se debe confirmar para que el buscador sepa si el Proveedor reaccionó o no al mensaje.

Si la autenticación del mensaje se realiza correctamente, el Proveedor enviará el ACK para el mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Declaración 0xFF
1 uint8 Conf. 0 × 01
2 - 3 uint16 Longitud de los datos adicionales varía
4 uint8 Cambio de audio 0x07
5 uint8 Código de mensaje de cambio de audio varía
6: s Datos adicionales varía

Si falla, el Proveedor enviará la NAK para el mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Declaración 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 Longitud de los datos adicionales 0 × 0003
4 uint8 Motivo del error varía
5 uint8 Cambio de audio 0x07
6 uint8 Código de mensaje de cambio de audio varía

Ten en cuenta que, si el proveedor es el remitente, no se requiere una dirección MAC.

Cómo obtener la capacidad de cambiar de audio

Tanto el proveedor de cambio de audio como el Seeker pueden comprobar si la Vinculación rápida conectada El Buscador o el proveedor admiten o no el cambio de audio usando el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cómo obtener la capacidad de cambiar de audio 0 × 10
2 - 3 uint16 Longitud de los datos adicionales 0

Tabla 4.3.1.0: Capacidad para cambiar de audio

Notificar la función de cambio de audio

Al recibir el mensaje Obtén la capacidad de cambiar el audio código, el buscador o proveedor de cambio de audio responderá con una de las siguientes marcas:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar la función de cambio de audio 0 × 11
2 - 3 uint16 Longitud de los datos adicionales 20 si lo envía Seeker
4 si lo envía el proveedor
4 a 5 uint16 Código de 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 la mejora de seguridad) es 0x0102.
0x0000 o sin respuesta en 1 segundo significa que el cambio de audio no es compatible con este dispositivo
6 a 7 flags Marcas de capacidad de cambio de audio del proveedor
Si Seeker envía esta información, se deben ignorar estos dos bytes.
varía
Consulta Marcas de función de cambio de audio
8 a 15 Nonce de mensaje
Es obligatorio solo cuando Seeker lo envía
varía
16 - 23 Código de autenticación de mensajes
Solo es obligatorio cuando Seeker lo envía
varía

Tabla 4.3.1.1: Función de notificación de cambio de audio

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

    • 1, si el estado de cambio de audio está activado
    • 0; de lo contrario,
  2. Bit 1: Configurabilidad multipunto

    • 1, si el dispositivo es compatible con multipunto y puede cambiar entre encendido y desactivada
    • 0, de lo contrario (no es compatible con la función multipunto o que la multipunto esté siempre activada)
  3. Bit 2: Estado actual multipunto

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

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

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

Establece el estado de varios puntos

En las buscadores de cambio de audio, es posible que proporcionemos la configuración para que los usuarios activen o desactiven la función y la funcionalidad multipunto. El buscador establecerá el estado multipunto en el proveedor usando el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Establece el estado de varios puntos 0 × 12
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Estado multipunto 0: apagar multipunto
1: encender multipunto
5 - 12 Nonce del mensaje varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.1.2: Establece el estado de varios puntos

Establecer preferencia de cambio

Los buscadores de cambio de audio pueden modificar la preferencia de cambio de multipunto y establecer al proveedor usando el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Establecer preferencia de cambio 0 × 20
2 - 3 uint16 Longitud de los datos adicionales 18
4 flags Cambio de preferencia varía.
Consulta la marca de preferencia de cambio de varios puntos.
5 Configuración avanzada de cambio
Este byte está reservado, el valor predeterminado es 0
varía
6 - 13 Nonce del mensaje varía
14 - 21 Código de autenticación de mensajes varía

Tabla 4.3.2.0: Cómo establecer la preferencia de cambio

Marca de preferencia de cambio de varios puntos
  • Bit 0 (MSB): A2DP frente a A2DP (valor predeterminado: 0)
  • Bit 1: HFP vs. HFP (valor predeterminado: 0)
  • Bit 2: A2DP frente a HFP (valor predeterminado: 0)
  • Bit 3: HFP vs. A2DP (valor predeterminado: 1)
  • Bit 4 - 7: reservados
  • El ejemplo de arriba representa como “nueva solicitud de perfil” en comparación con "perfil activo actual"
    • 0 por no cambiar
    • 1 para cambiar

Obtener preferencia de cambio

Los buscadores de cambio de audio pueden consultar la preferencia de cambio de multipunto desde el proveedor usando el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Obtener configuración de cambio 0 × 21
2 - 3 uint16 Longitud de los datos adicionales 0

Tabla 4.3.2.1: Cómo obtener preferencias de cambio

Notificar preferencia de cambio

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar preferencia de cambio 0 × 22
2 - 3 uint16 Longitud de los datos adicionales 2
4 flags Cómo cambiar marcas de preferencia varía.
Consulta la marca de preferencia de cambio de varios puntos.
5 Configuración avanzada de cambio
Este byte está reservado, el valor predeterminado debe ser 0
varía

Tabla 4.3.2.2: Preferencias de cambio de notificaciones

Cambiar fuente de audio activa (al dispositivo conectado)

Los buscadores de cambio de audio pueden solicitar al proveedor multipunto que cambie el activo fuente de audio entre dispositivos conectados usando el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cambiar fuente de audio activa (al dispositivo conectado) 0 × 30
2 - 3 uint16 Longitud de los datos adicionales 17
4 flags Cómo cambiar marcas activas de eventos de fuentes de audio varía
Consulta Cómo cambiar un evento de fuente de audio activo
5 - 12 Nonce del mensaje varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.3.0: Cambiar la fuente de audio activa (al dispositivo conectado)

Cambiando un evento de fuente de audio activo
  • Bit 0 (MSB): 1 cambio a este dispositivo, 0 cambio al segundo dispositivo conectado
  • Bit 1: 1 reanuda la reproducción en el interruptor de dispositivo después del cambio; de lo contrario, 0 Si se reanuda el juego, el proveedor envía una notificación de REPRODUCCIÓN al Buscador a través del perfil AVRCP. Si el estado anterior (antes del cambio) no era PLAY, el proveedor debe ignorar esta marca.
  • Bit 2: 1 SCO de rechazo en el dispositivo alejado, 0 de lo contrario
  • Bit 3: 1 desconecta el Bluetooth en el dispositivo alejado; de lo contrario, 0.
  • Bit 4 - 7: reservado.

Es posible que los buscadores de cambio de audio no siempre conozcan su estado correctamente, para que el proveedor reciba un mensaje "cambiar a este dispositivo" mensaje cuando el Buscador el dispositivo activo. En este caso, para mostrar la IU correcta en Seeker, El proveedor puede enviar una NAK con el motivo del error, 0x4: acción redundante del dispositivo.

En el caso de un proveedor de audio de bajo consumo que tiene más de un miembro establecido, el proveedor debe desconectar a todos los miembros del Buscador; de lo contrario, la pila Bluetooth de la El solicitante se reconectaría con el proveedor.

Volver a cambiar (dispositivo desconectado)

Si no desea cambiar de conexión, los usuarios pueden revertir el cambio. en algunos casos, tiene sentido restablecer la conexión de audio para minimizar interrupciones. El Buscador usará el siguiente mensaje para activar el cambio de vuelta:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Volver a cambiar (dispositivo desconectado) 0 × 31
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Cambiar evento varía
0x01: volver atrás
0x02: volver atrás y reanudar la reproducción
5 - 12 Nonce del mensaje varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.3.1: Cómo volver a cambiar (al dispositivo desconectado)

En el caso de los proveedores multipunto, para realizar un cambio de conexión, un proveedor puede quitar conexión con un dispositivo fuente de audio y pausar la sesión de audio en el otro fuente de audio. Por ejemplo, imagina que los auriculares multipunto están conectados a un y un tercer dispositivo con cambio de audio compatible. El usuario está viendo un video en la tableta cuando recibe una llamada en su teléfono. Se activará el teléfono un interruptor de conexión en los auriculares, que necesita soltar para establecer conexión con el teléfono y, al mismo tiempo, pausar el contenido multimedia en la tablet para obtener el tono del teléfono. Si el usuario rechaza para realizar la llamada, es posible que el teléfono les pida a los auriculares "volver a cambiar y reanudar la reproducción". Luego de recibir esta solicitud, los auriculares deben volver a conectarse al tercer dispositivo. reanuda la reproducción del video pausado en la tableta.

Notificar un evento de cambio de varios puntos

Para informar a los usuarios que se está llevando a cabo un evento de cambio de varios puntos, el interruptor de audio Es posible que el buscador muestre una notificación a los usuarios. El proveedor debe notificar Cambio de audio: Buscadores sobre el evento de cambio.

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar un evento de cambio de varios puntos
El proveedor debe enviarlo en cada interruptor, incluidos el cambio de audio en el Seeker con el cambio de audio en el Seeker, el de cambio de audio en el Seeker y el de cambio de audio en el Seeker y el de cambio de audio en el Seeker.
0 × 32
2 - 3 uint16 Longitud de los datos adicionales varía
4 uint8 Motivo del cambio
Este valor se debe determinar en función del Estado de conexión. Para los casos de uso de LE Audio, puede ser útil revisar la asignación entre LE Audio Context Type y Connection state. Por ejemplo, el estado de conexión correspondiente a los asistentes de voz es 0x9(LE audio - transmisión de llamadas). Por lo tanto, el motivo del cambio que iniciaron los asistentes de voz debería ser 0x02.
varía
0x00: Sin especificar
0x01: Medios (p.ej., transmisión A2DP, transmisión de medios LEA)
0x02: Llamada (p.ej., transmisión HFP, transmisión de llamada LEA)
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 el Buscador de cambio de audio, con el nombre al que se envió el Buscador; de lo contrario, se usará el nombre de Bluetooth, si no corresponde, con los últimos 2 bytes de su dirección
varía

Tabla 4.3.3.2: Cómo notificar un evento de interruptor multipunto

Obtén el estado de la conexión

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

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Obtén el estado de la conexión 0 × 33
2 - 3 uint16 Longitud de los datos adicionales 0

Tabla 4.3.3.3: Cómo obtener el estado de la conexión

Al recibir este mensaje, el Proveedor responderá con el código de mensaje 0x34, notifica el estado de conexión.

Notificar el estado de conexión

Según se define en la carga útil de publicidad de BLE, por proveedores multipunto, si cambia el estado de la conexión, excepto si se modifica paquete de publicidad, el Proveedor también deberá notificar a los buscadores conectados qué usan la misma clave de cuenta en relación con el cambio. Si el proveedor está conectado con un Buscador de cambio de audio y un Buscador de cambio de audio que no sea de audio, si Switch Seeker está activo, el proveedor también deberá notificar al Audio conectado cambiar al buscador sobre el estado de conexión (a través de la clave de cuenta del Buscador).

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar el estado de conexión 0 × 34
2 - 3 uint16 Longitud de los datos adicionales varía
4 uint8 Marca de dispositivo activo Varía
0x00: este Seeker es pasivo y el dispositivo activo usa la misma clave de cuenta
0x01: este Seeker es el dispositivo activo
0x02: este Seeker es pasivo y el dispositivo activo es un Seeker con un interruptor de audio que no es de audio.
5 - n Estado de la conexión encriptada varía
n+1 - n+8 Nonce del mensaje varía

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

Mensaje de estado de conexión encriptada

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

Donde:

Notificar la conexión iniciada de cambio de audio

Es posible que los proveedores de cambio de audio deban saber si se activó el cambio de conexión por cambio de audio para que se muestren reacciones diferentes, p.ej., inhabilitar los íconos sonoros para audio cambiar eventos. El Buscador envía un mensaje para notificar al proveedor que este es una conexión iniciada por el cambio de audio.

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar la conexión iniciada de cambio de audio 0 × 40
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Indicación de conexión iniciada de cambio de audio varía
0: El cambio de audio no activó esta conexión
1, ya que se trata de una conexión que inició el cambio de audio.
5 - 12 Nonce del mensaje varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.0: Cómo notificar la conexión iniciada con el cambio de audio

Indica la clave de cuenta en uso

Si varias claves de cuenta en el Seeker (por ejemplo, multiusuarios) se asocian con el Proveedor, el Buscador usará el siguiente mensaje para indicar qué cuenta está en uso.

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Indica la clave de cuenta en uso 0 × 41
2 - 3 uint16 Longitud de los datos adicionales 22
4 a 9 utf8 Cadena en uso UTF8 ("en uso")
10 - 17 Nonce del mensaje varía
18 - 25 Código de autenticación de mensajes varía

Tabla 4.3.4.1: Cómo indicar en el uso la clave de la cuenta

Cuando reciba este mensaje, el Proveedor podrá saber qué clave de cuenta está en uso verificando el código de autenticación de mensajes.

Envía datos personalizados

El Buscador de cambio de audio activo puede encapsular la información (p.ej., audio uso) de una transmisión de audio en bytes de datos personalizados y enviarlos al proveedor mediante el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Envía datos personalizados 0 × 42
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Datos personalizados varía
5 - 12 Nonce del mensaje varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.2: Envío de datos personalizados

Una vez recibidos los datos personalizados, el Proveedor actualizará el paquete de publicidad. para incluir los datos personalizados. Para un proveedor multipunto, también debe notificar al el estado de conexión cambiará a otro Seeker conectado con la misma clave de cuenta.

Establecer objetivo de caída de la conexión

En auriculares multipunto, si la conexión preferida que se debe soltar no es la se usó recientemente, las personas con cambio de audio pueden indicar al proveedor qué dispositivo para descartar con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Establecer objetivo de caída de la conexión 0 × 43
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Cómo establecer como objetivo el dispositivo conectado que se soltará varía
1: este dispositivo
5 - 12 Nonce del mensaje varía
13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.3: Establece el destino de conexión para soltar

Implementación de referencia

Consulta la biblioteca de SDK incorporados de Nearby para obtener la implementación de referencia.