Come utilizzare sempre il microfono per macbook con Bose QuietComfort 35?


30

Ho delle cuffie con cancellazione del rumore (Bose QC 35), che hanno anche un microfono incorporato. Se il microfono è attivo, la cancellazione del rumore non funziona, passano semplicemente attraverso i suoni ambientali (questo è in base alla progettazione. Suppongo che lo abbiano fatto in modo da non sentirti in "vuoto" quando parli) .

Ad ogni modo, il problema è che ogni volta che collego le mie cuffie a macOS, il sistema passa dal microfono interno a quello delle cuffie. Pertanto, la cancellazione del rumore non funziona, a meno che non vada alle impostazioni di sistema e ritorni il microfono a quello interno.

Questo è molto fastidioso, soprattutto considerando che devo farlo ogni volta che collego le cuffie.

Esiste un modo per forzare macOS a utilizzare sempre il microfono interno o non utilizzare quello delle cuffie specifiche?

Aggiornamento dal 10/2017:

Quindi ho scoperto che "il microfono delle cuffie è in uso" accade solo quando Skype è in esecuzione. Ma da quando ho smesso di usare Skype (o averlo sempre in esecuzione), il problema era sparito!

Questa non è la soluzione per la domanda originale, la sto lasciando qui per riferimento futuro.


Come si collegano le cuffie tramite Bluetooth? Se sì, come si presenta nelle Preferenze Bluetooth, come un singolo dispositivo o come coppia di due dispositivi, cuffie + microfono?
toma,

@toma the Bose QC 35 è un auricolare wireless, ma può essere utilizzato anche tramite connettore telefonico
Northsea

@northsea, come posso vedere sul sito ufficiale, questa cuffia supporta entrambe le interfacce, il bluetooth e il cavo audio. quindi se li colleghi via bluetooth, come vengono visualizzati nelle preferenze BT? bose.com/en_us/products/headphones/over_ear_headphones/…
toma

@toma li sto usando via bluetooth, sì. Sono mostrati come cuffie.
kovpas,

4
Questa non è una soluzione reale, ma puoi cambiare rapidamente le fonti di input tenendo premuto Optione facendo clic sull'icona Suono nella barra dei menu, quindi selezionando una fonte di ingresso dall'elenco. È almeno un po 'più veloce rispetto all'uso delle Preferenze di Sistema.
aaplmath,

Risposte:


6

Non sono sicuro di quanto sia pratico (non ho avuto la possibilità di misurare l'utilizzo della CPU, ecc.), Ma il seguente AppleScript farà il lavoro, basta sostituirlo [YOUR HEADPHONES' NAME]con il nome reale delle tue cuffie. Questa è una versione modificata di uno script da un thread delle community di supporto Apple .

Salvare lo script di seguito come applicazione, eseguirlo e aggiungerlo agli elementi di avvio: dovrebbe essere eseguito continuamente in background.

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

Potresti giocare con il tempo tra i controlli (la riga con il commento for 5 second checks) per ridurre il consumo di risorse.

Ci sono un certo numero di nuove API (specialmente in AVFoundation) in arrivo su macOS High Sierra che consentirebbero una soluzione molto più pulita a questo problema. Se ti senti a tuo agio con Swift o Objective-C (o il bridge di scripting Cocoa in AppleScript e JXA), esaminerei l'utilizzo di queste API anziché di questo script una volta rilasciato High Sierra. In particolare, la Guida alla programmazione della sessione audio di Apple e questo post Stack Overflow mostrano alcune tecniche di rilevamento delle connessioni Bluetooth mediante AVAudioSession.


Sì, sembra un discreto compromesso. Sono davvero deluso che Bose non riesca ancora a trovare un buon supporto per il loro prodotto su Sierra ... Fino ad allora sembra che dovrei usare soluzioni alternative come questa :(. Grazie!
kovpas,

@aaplmath La sceneggiatura è davvero interessante ... e mi piace molto quel suggerimento alla fine del tuo post. Scrivere un'applicazione della barra dei menu (o senza testa) che monitora la sessione audio e reindirizza sempre al microfono interno sarebbe un progetto divertente su cui lavorare e potrebbe essere un po 'più robusto ... (forse) Ma comunque, mi piace la versione di AppleScript perché è qualcosa che chiunque potrebbe usare oggi. Grazie!
Evan Stone,

18

Mi piace ancora molto il suggerimento di @ aaplmath (e potrebbe essere il migliore in futuro), ma mi sono anche imbattuto in questa soluzione che non richiede codifica (AppleScript / Swift / ObjC / Other) in High Sierra, ed è super facile da configurare .

Si noti che la risposta era nella sezione dei commenti dell'articolo e sembra funzionare su High Sierra (sono il 10.13.6), ma non so se funziona su Mojave e oltre.

Apri l'utility "Audio MIDI Setup.app" standard e fai clic sul + in basso per creare un dispositivo aggregato. Quindi selezionare il microfono interno come unico componente in questo dispositivo aggregato e selezionarlo come input predefinito. Per qualche motivo questo impedisce a Mac OS X di selezionare il microfono Bluetooth d'ora in poi e rimarrà su quello interno quando ti riconnetti.

Dopo aver creato quell'ingresso aggregato, vai alle tue solite Preferenze di Sistema -> Audio -> Ingresso (scheda)

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


Avevo anche problemi con Bose QC 35 ii. Questa soluzione funziona perfettamente. Grazie.
Charles Han,

Funziona anche con le cuffie audiomx.
Danny Staple,

Non sembra funzionare su macOS Catalina. My AirPods v2 diventa di nuovo il microfono principale e l'aggregazione appena creata non sembra bloccare nulla: '(
MoOx

Funziona in Mojave e Catalina non è ancora installato. Apple probabilmente ha cambiato qualcosa che ora non funziona ... molto deludente. Buono a sapersi che questa è la fine della strada se è così ... Sembra anche che Catalina mostri il problema originale, tuttavia, e se è così, è anche molto deludente.
Evan Stone,

6

Ho questo problema quando uso il simulatore iOS e fa qualsiasi suono, come da una tastiera. Il mio Bose 35 passa a un flusso audio di qualità inferiore e tutto sembra terribile.

Da altri risultati della ricerca ho scoperto che il passaggio al microfono interno del mio Mac risolve il problema. Sulla base di questa domanda, mi sono reso conto che potrei non essere in grado di configurare le impostazioni per il mio mac, ma posso configurarle per il mio simulatore iOS.

Simulatore iOS: Hardware -> Ingresso audio -> Microfono interno


-2

Se si utilizzano le cuffie tramite cavo anziché tramite bluetooth, la soluzione più semplice dovrebbe essere quella di utilizzare un cavo con un jack TRS (Tip + Ring + Sleeve) anziché un jack TRRS (Tip + Ring + Ring + Sleeve). La presa del telefono TRS supporta solo il segnale stereo, ma nessun microfono. Pertanto, il segnale del microfono non verrà trasmesso e il microfono incorporato dovrebbe rimanere attivo.


1
No, li sto usando tramite bluetooth. Il wireless è stato il motivo principale per acquistarli in primo luogo :)
kovpas
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.