Ich habe Kopfhörer mit Geräuschunterdrückung (Bose QC 35), die auch ein Mikrofon eingebaut haben. Wenn das Mikrofon aktiv ist, funktioniert die Geräuschunterdrückung nicht, sie lassen nur Umgebungsgeräusche durch (dies ist beabsichtigt. Ich nehme an, sie haben es getan, damit Sie nicht das Gefühl haben, im „Vakuum“ zu sein, wenn Sie sprechen) .
Wie auch immer, das Problem ist, dass, wenn ich meine Kopfhörer an macOS anschließe, das System vom internen Mikrofon zum Kopfhörer umschaltet. Daher funktioniert die Geräuschunterdrückung nicht, es sei denn, ich gehe zu den Systemeinstellungen und schalte das Mikrofon wieder auf das interne um.
Das ist sehr nervig, vor allem wenn man bedenkt, dass ich das jedes Mal machen muss, wenn ich Kopfhörer anschließe.
Gibt es eine Möglichkeit, macOS zu zwingen, immer das interne Mikrofon zu verwenden, oder nicht das spezielle Kopfhörermikrofon zu verwenden?
Update von 10/2017:
Also habe ich herausgefunden, dass "Kopfhörermikrofon wird verwendet" nur passiert, wenn Skype läuft. Aber seit ich aufgehört habe, Skype zu benutzen (oder es ständig laufen zu lassen), war das Problem weg!
Dies ist nicht die Lösung für die ursprüngliche Frage, ich lasse sie hier nur für die zukünftige Referenz.
Ich bin mir nicht sicher, wie praktisch das ist (ich hatte keine Gelegenheit, die CPU-Auslastung usw. zu messen), aber das folgende AppleScript erledigt die Aufgabe – ersetzen Sie es einfach durch [YOUR HEADPHONES' NAME]
den tatsächlichen Namen Ihrer Kopfhörer. Dies ist eine modifizierte Version eines Skripts aus einem Thread der Apple Support Communities .
Speichern Sie das folgende Skript als Anwendung, führen Sie es aus und fügen Sie es zu Ihren Startelementen hinzu – es sollte kontinuierlich im Hintergrund ausgeführt werden.
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
Sie könnten mit der Zeit zwischen den Überprüfungen spielen (die Zeile mit dem Kommentar for 5 second checks
), um den Ressourcenverbrauch zu reduzieren.
Es gibt eine Reihe neuer APIs (insbesondere in AVFoundation
) für macOS High Sierra, die eine viel sauberere Lösung für dieses Problem ermöglichen würden. Wenn Sie mit Swift oder Objective-C (oder der Cocoa-Skriptbrücke in AppleScript und JXA) vertraut sind, würde ich prüfen, ob Sie diese APIs anstelle dieses Skripts verwenden, sobald High Sierra veröffentlicht wird. Insbesondere Apples Audio Session Programming Guide und dieser Stack Overflow-Beitrag zeigen einige Techniken zum Erkennen von Bluetooth-Verbindungen mit AVAudioSession
.
Ich mag den Vorschlag von @aaplmath immer noch sehr (und das ist vielleicht der beste für die Zukunft), aber ich bin auch gerade über diese Lösung gestolpert, die keine Codierung (AppleScript/Swift/ObjC/Other) in High Sierra erfordert und super einfach zu konfigurieren ist .
Bitte beachten Sie, dass die Antwort im Kommentarbereich des Artikels stand und auf High Sierra zu funktionieren scheint (ich bin auf 10.13.6), aber ich weiß nicht, ob dies auf Mojave und darüber hinaus funktioniert.
Öffnen Sie das Standarddienstprogramm „Audio MIDI Setup.app“ und klicken Sie unten auf das +, um ein Aggregate Device zu erstellen. Wählen Sie dann das interne Mikrofon als einzige Komponente in diesem Aggregatgerät und als Standardeingang aus. Aus irgendeinem Grund verhindert dies von nun an, dass Mac OS X das Bluetooth-Mikrofon auswählt, und es bleibt beim erneuten Verbinden auf dem internen Mikrofon.
Nachdem Sie diese aggregierte Eingabe erstellt haben, gehen Sie zu Ihren üblichen Systemeinstellungen -> Ton -> Eingabe (Registerkarte)
MacBook Pro Microphone
mein BT-Headset auswähle und anschließe, wechselt das Mikrofon zum BT-Headset, aber wenn ich das MIDI-Aggregatgerät wähle und das BT-Headset anschließe, bleibt es beim MIDI-Aggregatgerät.Ich habe dieses Problem, wenn ich den iOS-Simulator verwende und er macht irgendwelche Geräusche, wie von einer Tastatur. Meine Bose 35 wechseln zu einem Audiostream mit geringerer Qualität und alles klingt schrecklich.
Aus anderen Suchergebnissen habe ich herausgefunden, dass das Umschalten auf das interne Mikrofon meines Mac das Problem behebt. Basierend auf dieser Frage wurde mir klar, dass ich die Einstellung möglicherweise nicht für meinen Mac festlegen kann, aber ich kann sie für meinen iOS-Simulator festlegen.
iOS-Simulator: Hardware -> Audioeingang -> Internes Mikrofon
Das ist mir auf BigSur passiert und es ist das Schlimmste! Ich konnte es nicht herausfinden und habe hier alles versucht, keine Ergebnisse. Was für mich funktioniert hat, war, in die Zoom-App-Einstellungen zu gehen und das interne Mikrofon aus dem Standard-Bose QC 35 und Bingo auszuwählen, kein beschissenes Audio.
Wenn Sie Ihre Kopfhörer über Kabel anstelle von Bluetooth verwenden, sollte die einfachste Lösung darin bestehen, ein Kabel mit einer TRS-Klinkenbuchse (Tip + Ring + Sleeve) anstelle einer TRRS-Klinkenbuchse (Tip + Ring + Ring + Sleeve) zu verwenden. Die TRS-Klinkenbuchse unterstützt nur Stereosignale, aber kein Mikrofon. Somit wird kein Mikrofonsignal übertragen und das eingebaute Mikrofon sollte aktiv bleiben.
Toma
Nordsee
Toma
kovpas
aplmath
Option
Sie das Sound-Symbol in Ihrer Menüleiste gedrückt halten und darauf klicken und dann eine Eingangsquelle aus der Liste auswählen. Es ist zumindest etwas schneller als die Verwendung der Systemeinstellungen.