2010-07-07 16 views
6

¿Hay alguna manera de permitir que el usuario seleccione qué dispositivo usar para la salida de audio?Seleccione el dispositivo de audio en el iPhone

En la documentación que he encontrado que hay para elegir qué ruta a su utilización por medio kAudioSessionProperty_OverrideAudioRoute a cualquiera:

  • kAudioSessionOverrideAudioRoute_None o
  • kAudioSessionOverrideAudioRoute_Speaker

Sin embargo, me gustaría deje que el usuario use sus auriculares Bluetooth para escuchar el audio.

Si miras en la aplicación de "memos de voz" de Apple, en el menú de reproducción hay un botón en la parte superior izquierda que te permite elegir qué dispositivo de audio usar. Cuando se coloca un auricular Bluetooth, al pulsar el botón, aparecerá un menú que permite seleccionar entre:

  • auricular Bluetooth
  • iPhone
  • altavoz

¿Hay una manera de lograr esta funcionalidad usando API estándar de Apple en mi propia aplicación?

Respuesta

13

En 3.1 existen dos protocolos que soportan salida de audio a dispositivos con Bluetooth y el uso depende del accesorio. El primero es A2DP que se usa con accessores que admiten la recepción de música estéreo, y el otro es manos libres para todos los accesorios de manos libres. Para activar la primera opción, necesita usar la clase MPVolumeView que tiene un control deslizante de volumen y un botón de selección de dispositivo de audio, cuando esta vista se agrega a cualquiera de las vistas en la aplicación, proporciona una manera para que el usuario configure el volumen y seleccionar un dispositivo BT si está conectado (esta es la única manera que encontré) Por otro lado, la segunda opción se puede activar mediante la llamada

UInt32 bt = TRUE; 
result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt); 

el appliction debe inicializar la sesión de audio y utilizar el corect categoría (debe admitir la recodificación para que esto funcione). Después de la EnableBluetoothInput se establece todo el audio de entrada y salida se enruta a través del dispositivo de manos libres (si está conectado, por supuesto :))

1

La forma más sencilla es añadir un control MPVolume (link to documentation) a su interfaz de usuario y establecer showsVolumeSlider = NO y showsRouteButton = YES.

El usuario tendrá un botón de ruta para enrutar el audio a un dispositivo de su elección.

Cuestiones relacionadas