¿Cómo usar siempre el micrófono interno?

18

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, solo pasan a través de los sonidos ambientales (esto es por diseño. Supongo que lo hicieron para que no sintieras que estás en "vacío" cuando estás hablando) .

De todos modos, el problema es que cada vez que conecto mis auriculares a macOS, el sistema cambia del micrófono interno al de los auriculares. Por lo tanto, la cancelación de ruido no funciona, a menos que vaya a la configuración del sistema y vuelva a cambiar el micrófono 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 forzar a macOS a usar siempre el micrófono interno o no usar el auricular específico?

Actualización del 10/2017:

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

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

    
pregunta kovpas 20.06.2017 - 13:19

4 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 AppleScript a continuación hará el trabajo; simplemente reemplace [YOUR HEADPHONES' NAME] con el nombre real de sus auriculares. . Esta es una versión modificada de un script de un subproceso 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; debería 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

Puedes jugar con el tiempo entre las comprobaciones (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 vienen a macOS High Sierra que permitirían una solución mucho más limpia para este problema. Si te sientes cómodo con Swift o Objective-C (o el puente de scripting Cocoa en AppleScript y JXA), buscaría usar esas API en lugar de este script una vez que se libere High Sierra. En particular, ="https://stackoverflow.com/questions/28928876/how-to-detect-if-a-bluetooth-headset-plugged-or-not-ios-8"> esta publicación de desbordamiento de pila muestra algunas técnicas de detectar conexiones Bluetooth usando AVAudioSession .

    
respondido por el aaplmath 01.07.2017 - 21:42
4

Tengo este problema cuando uso el simulador de iOS y emite un sonido similar al de un teclado. El cambio de My Bose 35 a una transmisión de audio de menor calidad y todo suena horrible.

A partir de otros resultados de búsqueda, encontré que cambiar al micrófono interno de mi Mac soluciona el problema. Basándome en esta pregunta, me di cuenta de que es posible que no pueda establecer la configuración para mi mac, pero puedo configurarla para mi simulador de iOS.

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

    
respondido por el Michael Ozeryansky 26.01.2018 - 06:46
3

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 super fácil de configurar.

Tenga en cuenta que la respuesta fue 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 a partir de ahora y se mantendrá en el interno cuando vuelva a conectarse.

     

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

Fuente: enlace

    
respondido por el Evan K. Stone 23.10.2018 - 15:33
-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 (punta + anillo + funda) en lugar de un conector telefónico TRRS (Consejo + anillo + anillo + funda) . El conector telefónico TRS solo admite la señal estéreo, pero no tiene micrófono. Por lo tanto, no se transmitirá ninguna señal de micrófono y el micrófono incorporado debe permanecer activo.

    
respondido por el northsea 28.06.2017 - 21:55

Lea otras preguntas en las etiquetas