¿Cómo usar siempre el micrófono macbook con Bose QuietComfort 35?

30

Tengo auriculares con cancelación de ruido (Bose QC 35), que también tienen micrófono incorporado. Si el micrófono está activo, la cancelación de ruido no funciona, simplemente pasan a través de los sonidos ambientales (esto es por diseño. Supongo que lo hicieron para que no sientas que estás en el "vacío" cuando estás hablando) .

De todos modos, el problema es que cada vez que conecto mis auriculares a macOS, el sistema cambia de micrófono interno a uno de auriculares. Por lo tanto, la cancelación de ruido no funciona, a menos que vaya a la configuración del sistema y cambie el micrófono nuevamente al interno.

Esto es muy molesto, especialmente teniendo en cuenta que tengo que hacer eso cada vez que conecto los auriculares.

¿Hay alguna forma de obligar a macOS a usar siempre el micrófono interno, o no usar el auricular específico?

Actualización de 10/2017:

Así que descubrí que "se está usando el micrófono de los auriculares" solo ocurre cuando Skype está funcionando. Pero desde que dejé de usar Skype (o de tenerlo funcionando todo el tiempo), ¡el problema desapareció!

Esta no es la solución para la pregunta original, solo la dejo aquí para referencia futura.

kovpas
fuente
¿Cómo se conectan los auriculares a través de Bluetooth? En caso afirmativo, ¿cómo se ve en las Preferencias de Bluetooth, como un solo dispositivo, o como un par de dos dispositivos, auriculares + micrófono?
toma
@toma el Bose QC 35 es un auricular inalámbrico, pero también se puede utilizar a través del conector de teléfono
northsea
@northsea como puedo ver en el sitio web oficial, estos auriculares son compatibles con ambas interfaces, bluetooth y cable de audio. Entonces, si los conecta a través de Bluetooth, ¿cómo se muestran en las preferencias de BT? bose.com/en_us/products/headphones/over_ear_headphones/…
toma
@toma Los estoy usando a través de bluetooth, sí. Se muestran como auriculares.
kovpas
44
Esta no es una solución real, pero puede cambiar rápidamente las fuentes de entrada manteniendo Optionpresionado y haciendo clic en el icono Sonido en su barra de menú, luego seleccionando una fuente de entrada de la lista. Es un poco más rápido que usar Preferencias del Sistema, al menos.
aaplmath 01 de

Respuestas:

6

No estoy seguro de lo práctico que es esto (no he tenido la oportunidad de medir el uso de la CPU, etc.), pero el siguiente AppleScript hará el trabajo: simplemente reemplácelo [YOUR HEADPHONES' NAME]con el nombre real de sus auriculares. Esta es una versión modificada de un script de un hilo de Comunidades de soporte de Apple .

Guarde el script a continuación como una aplicación, ejecútelo y agréguelo a sus elementos de inicio; debe ejecutarse continuamente en segundo plano.

repeat
    set statusOld to checkStatus()
    set statusNew to checkStatus()
    repeat while statusOld is equal to statusNew
        delay 5 --for 5 second checks
        set statusNew to checkStatus()
    end repeat
    if statusNew is true then
        tell application "System Preferences" to activate
        tell application "System Preferences"
            reveal anchor "input" of pane id "com.apple.preference.sound"
        end tell
        delay 0.5
        tell application "System Events" to tell process "System Preferences"
            tell table 1 of scroll area 1 of tab group 1 of window 1
                select (row 1 where value of text field 1 is "Internal Microphone")
            end tell
        end tell
        tell application "System Preferences" to quit
    else
        -- Nothing needs to happen, the device was removed
    end if
end repeat

on checkStatus()
    set bluetoothDeviceName to "[YOUR HEADPHONES' NAME]"
    set myString to do shell script "system_profiler SPBluetoothDataType"

    --initial check if it's not even there
    if myString does not contain bluetoothDeviceName then
        return false
    else

        --find out if connected/disconnected
        set AppleScript's text item delimiters to "name:"
        set myList to the text items of myString --each item of mylist is now one of the devices

        set numberOfDevices to count of myList
        set counter to 1
        repeat numberOfDevices times --loop through each devices checking for Connected string
            if item counter of myList contains bluetoothDeviceName then
                if item counter of myList contains "Connected: Yes" then
                    return true
                else if item counter of myList contains "Connected: No" then
                    return false
                else
                    display dialog "Something went wrong with the script" --this shouldn't happen
                end if
            end if
            set counter to counter + 1
        end repeat
    end if
end checkStatus

Puede jugar con el tiempo entre verificaciones (la línea con el comentario for 5 second checks) para reducir el consumo de recursos.

Hay una serie de nuevas API (especialmente en AVFoundation) que llegan a macOS High Sierra que permitirían una solución mucho más limpia para este problema. Si se siente cómodo con Swift u Objective-C (o el puente de secuencias de comandos de Cocoa en AppleScript y JXA), buscaría usar esas API en lugar de esta secuencia de comandos una vez que se lance High Sierra. En particular, la Guía de programación de sesiones de audio de Apple y esta publicación de desbordamiento de pila muestran algunas técnicas para detectar las conexiones Bluetooth usando AVAudioSession.

aaplmath
fuente
Sí, parece un compromiso decente. Estoy realmente decepcionado. Bose todavía no puede encontrar un buen soporte de su producto en Sierra ... Hasta entonces parece que tendría que usar soluciones como esta :(. ¡Gracias!
kovpas
@aaplmath El script es realmente interesante ... y realmente me gusta esa sugerencia al final de tu publicación. Escribir una aplicación de barra de menú (o sin cabeza) que monitoree la sesión de audio y siempre redirija al micrófono interno sería un proyecto divertido para trabajar y podría ser un poco más robusto ... (tal vez) Pero aún así, me gusta la versión de AppleScript porque es algo que cualquiera podría usar hoy. ¡Gracias!
Evan Stone
18

Todavía me gusta mucho la sugerencia de @aaplmath (y esa puede ser la mejor en el futuro), pero también me topé con esta solución que no requiere codificación (AppleScript / Swift / ObjC / Other) en High Sierra, y es muy fácil de configurar .

Tenga en cuenta que la respuesta estaba en la sección de comentarios del artículo y parece funcionar en High Sierra (estoy en 10.13.6), pero no sé si esto funciona en Mojave y más allá.

Abra la utilidad estándar "Audio MIDI Setup.app" y haga clic en + en la parte inferior para crear un dispositivo agregado. Luego seleccione el micrófono interno como el único componente en este dispositivo agregado y selecciónelo como la entrada predeterminada. Por alguna razón, esto evita que Mac OS X seleccione el micrófono Bluetooth de ahora en adelante y permanecerá en el interno cuando se vuelva a conectar.

Después de crear esa entrada agregada, vaya a las Preferencias del sistema habituales -> Sonido -> Entrada (pestaña)

Fuente: http://ssrubin.com/posts/fixing-macos-bluetooth-headphone-audio-quality-issues-with-hammerspoon.html#comment-4018174387

Evan Stone
fuente
También estaba teniendo problemas con Bose QC 35 ii. Esta solución funciona perfectamente. Gracias.
Charles Han
Esto también funciona con auriculares audiomx.
Danny Staple
Parece que no funciona en macOS Catalina. My AirPods v2 se convierte nuevamente en el micrófono principal, y la agregación recién creada no parece bloquear nada: '(
MoOx
Funciona en Mojave, y todavía no tengo Catalina instalada. Apple probablemente cambió algo que hace que esto no funcione ahora ... muy decepcionante. Es bueno saber que este es el final del camino si ese es el caso ... También parece que Catalina exhibe el problema original, y si es así, eso también es muy decepcionante.
Evan Stone
6

Tengo este problema cuando uso el simulador de iOS y produce cualquier sonido, como el de un teclado. Mi Bose 35 cambia a una transmisión de audio de menor calidad y todo suena horrible.

De otros resultados de búsqueda, descubrí que cambiar al micrófono interno de mi Mac soluciona el problema. En base a esta pregunta, me di cuenta de que es posible que no pueda configurar la configuración de mi Mac, pero puedo configurarla para mi simulador de iOS.

Simulador de iOS: Hardware -> Entrada de audio -> Micrófono interno

Michael Ozeryansky
fuente
-2

Si usa sus auriculares por cable en lugar de bluetooth, la solución más simple debería ser usar un cable con un conector telefónico TRS (Tip + Ring + Sleeve) en lugar de un conector telefónico TRRS (Tip + Ring + Ring + Sleeve). El conector telefónico TRS solo admite señal estéreo, pero no micrófono. Por lo tanto, no se transmitirá ninguna señal de micrófono y el micrófono incorporado debe permanecer activo.

mar del Norte
fuente
1
No, los estoy usando a través de bluetooth. Wireless fue la principal razón para comprar en primer lugar :)
kovpas