จะใช้ไมโครโฟน macbook กับ Bose QuietComfort 35 ได้อย่างไร


30

ฉันมีหูฟังตัดเสียงรบกวน (Bose QC 35) ที่มีไมโครโฟนในตัวด้วย หากไมโครโฟนทำงานอยู่การตัดเสียงรบกวนไม่ทำงานพวกเขาเพียงแค่ผ่านเสียงรอบข้าง (นี่คือการออกแบบโดยฉันคิดว่าพวกเขาทำมันดังนั้นคุณจะไม่รู้สึกว่าคุณกำลัง "ดูด" เมื่อคุณกำลังพูด) .

อย่างไรก็ตามปัญหาคือเมื่อใดก็ตามที่ฉันเชื่อมต่อหูฟังของฉันกับ macOS ระบบจะสลับจากไมโครโฟนภายในเป็นหูฟัง ' ดังนั้นการตัดเสียงรบกวนไม่ทำงานยกเว้นว่าฉันไปที่การตั้งค่าระบบและสลับไมโครโฟนกลับไปยังไมโครโฟนภายใน

นี่เป็นเรื่องที่น่ารำคาญมากโดยเฉพาะอย่างยิ่งเมื่อพิจารณาว่าต้องทำทุกครั้งที่เชื่อมต่อหูฟัง

มีวิธีใดที่จะบังคับให้ macOS ใช้ไมโครโฟนภายในหรือไม่ใช้หูฟังที่เฉพาะเจาะจงหรือไม่?

อัปเดตตั้งแต่ 10/2017:

ดังนั้นฉันจึงพบว่า "ไมโครโฟนของหูฟังกำลังถูกใช้" จะเกิดขึ้นเฉพาะเมื่อ Skype กำลังทำงานอยู่ แต่ตั้งแต่ฉันหยุดใช้ Skype (หรือให้มันทำงานอยู่ตลอดเวลา) ปัญหาก็หายไป!

นี่ไม่ใช่วิธีแก้ปัญหาสำหรับคำถามเดิมฉันแค่ทิ้งไว้ที่นี่เพื่อใช้อ้างอิงในอนาคต


คุณจะเชื่อมต่อหูฟังผ่าน Bluetooth ได้อย่างไร? ถ้าใช่ดูเหมือนว่าในการตั้งค่าบลูทู ธ เป็นอุปกรณ์เดียวหรือเป็นสองอุปกรณ์หูฟัง + ไมโครโฟน?
toma

@toma the Bose QC 35 เป็นชุดหูฟังไร้สาย แต่สามารถใช้งานได้ผ่านทางช่องเสียบโทรศัพท์
northsea

@northsea ที่ฉันเห็นบนเว็บไซต์ทางการหูฟังนี้รองรับทั้งอินเตอร์เฟสบลูทู ธ และสายสัญญาณเสียง ดังนั้นหากคุณเชื่อมต่อผ่านบลูทู ธ วิธีที่แสดงในการตั้งค่า BT? bose.com/en_us/products/headphones/over_ear_headphones/...
toma

@toma ฉันใช้มันผ่านบลูทู ธ ใช่ พวกเขาจะแสดงเป็นหูฟัง
kovpas

4
นี่ไม่ใช่วิธีการแก้ปัญหาที่แท้จริง แต่คุณสามารถสลับแหล่งสัญญาณได้อย่างรวดเร็วด้วยการกดค้างOptionที่ไอคอนเสียงในแถบเมนูแล้วเลือกแหล่งสัญญาณเข้าจากรายการ อย่างน้อยก็เร็วกว่าการใช้การตั้งค่าระบบอย่างน้อย
aaplmath

คำตอบ:


6

ฉันไม่แน่ใจว่าวิธีนี้ใช้ได้จริงหรือเปล่า (ฉันไม่ได้มีโอกาสวัดการใช้งาน CPU ฯลฯ ) แต่ AppleScript ด้านล่างจะทำงานได้ - เพียงแทนที่[YOUR HEADPHONES' NAME]ด้วยชื่อจริงของหูฟังของคุณ นี้เป็นรุ่นที่ปรับเปลี่ยนสคริปต์จากด้ายชุมชนแอปเปิ้ลสนับสนุน

บันทึกสคริปต์ด้านล่างเป็นแอปพลิเคชันเรียกใช้และเพิ่มลงในรายการเริ่มต้นของคุณซึ่งควรทำงานอย่างต่อเนื่องในพื้นหลัง

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

คุณสามารถเล่นกับเวลาระหว่างการตรวจสอบ (บรรทัดที่มีความคิดเห็นfor 5 second checks) เพื่อลดการใช้ทรัพยากร

มี API ใหม่จำนวนมาก (โดยเฉพาะอย่างยิ่งในAVFoundation) มาถึง macOS High Sierra ที่จะช่วยให้การแก้ปัญหาที่สะอาดมากขึ้นสำหรับปัญหานี้ หากคุณพอใจกับ Swift หรือ Objective-C (หรือสะพานเขียนสคริปต์ Cocoa ใน AppleScript และ JXA) ฉันจะพิจารณาใช้ API เหล่านั้นแทนสคริปต์นี้เมื่อมีการเปิดตัว High Sierra โดยเฉพาะอย่างยิ่งแอปเปิ้ลเซสชันเสียง Programming คู่มือและโพสต์กองมากเกินแสดงเทคนิคของการตรวจสอบการเชื่อมต่อบลูทู ธ AVAudioSessionใช้บางส่วน


ใช่ดูเหมือนประนีประนอมที่ดี ฉันผิดหวังจริงๆ Bose ยังไม่สามารถสนับสนุนผลิตภัณฑ์ของพวกเขาใน Sierra ... จนกว่าจะถึงตอนนั้นดูเหมือนว่าฉันจะต้องใช้วิธีแก้ปัญหาเช่นนี้ :( ขอบคุณ!
kovpas

@aaplmath สคริปต์น่าสนใจจริงๆ ... และฉันชอบคำแนะนำนั้นในตอนท้ายของโพสต์ การเขียนแอปพลิเคชันแถบเมนู (หรือหัวขาด) ที่ตรวจสอบเซสชันเสียงและเส้นทางใหม่ไปยังไมโครโฟนภายในจะเป็นโครงการที่สนุกในการทำงานและอาจแข็งแกร่งกว่านี้เล็กน้อย ... (อาจ) แต่ฉันก็ชอบ รุ่น AppleScript เพราะเป็นสิ่งที่ทุกคนสามารถใช้งานได้ในวันนี้ ขอบคุณ!
Evan Stone

18

ฉันยังชอบข้อเสนอแนะของ @ aaplmath (และนั่นอาจจะเป็นสิ่งที่ดีที่สุดในอนาคต) แต่ฉันก็สะดุดกับโซลูชันนี้ที่ไม่ต้องมีการเข้ารหัส (AppleScript / Swift / ObjC / อื่น ๆ ) ใน High Sierra และมันง่ายมากในการกำหนดค่า .

โปรดทราบว่าคำตอบนั้นอยู่ในส่วนความคิดเห็นของบทความและดูเหมือนว่าจะทำงานกับ High Sierra (ฉันอยู่ที่ 10.13.6) แต่ฉันไม่รู้ว่ามันใช้งานได้กับโมฮาวีหรือไม่

เปิดยูทิลิตี้ "Audio MIDI Setup.app" มาตรฐานแล้วคลิก + ที่ด้านล่างเพื่อสร้างอุปกรณ์รวม จากนั้นเลือกไมโครโฟนภายในเป็นองค์ประกอบเดียวในอุปกรณ์รวมนี้และเลือกเป็นอินพุตเริ่มต้น ด้วยเหตุผลบางอย่างสิ่งนี้จะป้องกันไม่ให้ Mac OS X เลือกไมโครโฟนบลูทู ธ จากนี้ไปและจะยังคงอยู่ในไมโครโฟนภายในเมื่อคุณเชื่อมต่อใหม่

หลังจากสร้างอินพุตรวมให้ไปที่การตั้งค่าระบบตามปกติของคุณ -> เสียง -> อินพุต (แท็บ)

ที่มา: http://ssrubin.com/posts/fixing-macos-bluetooth-headphone-audio-quality-issues-with-hammerspoon.html#comment-4018174387


ฉันยังมีปัญหากับ Bose QC 35 ii วิธีนี้ใช้ได้ผลอย่างสมบูรณ์ ขอขอบคุณ.
ชาร์ลส์ฮัน

ใช้ได้กับหูฟัง audiomx ด้วยเช่นกัน
Danny Staple

ดูเหมือนว่าจะไม่ทำงานบน macOS Catalina AirPods v2 ของฉันกลายเป็นไมโครโฟนหลักอีกครั้งและการรวมที่สร้างขึ้นใหม่ดูเหมือนจะไม่ปิดกั้นอะไรเลย: '(
MoOx

มันใช้งานได้ในโมฮาวีและฉันยังไม่ได้ติดตั้ง Catalina Apple อาจเปลี่ยนสิ่งที่ทำให้ตอนนี้ใช้งานไม่ได้ ... น่าผิดหวังมาก ดีใจที่รู้ว่านี่เป็นจุดสิ้นสุดของถนนหากเป็นเช่นนั้น ... มันก็ดูเหมือนว่า Catalina จะแสดงปัญหาดั้งเดิมอย่างไรก็ตามและหากเป็นเช่นนั้นมันก็น่าผิดหวังมาก
Evan Stone

6

ฉันมีปัญหานี้เมื่อใช้ iOS Simulator และทำให้เกิดเสียงใด ๆ เช่นจากแป้นพิมพ์ My Bose 35 เปลี่ยนเป็นสตรีมเสียงคุณภาพต่ำและทุกอย่างฟังดูน่ากลัว

จากผลการค้นหาอื่น ๆ ฉันพบว่าการสลับไปใช้ไมโครโฟนภายในของ Mac จะช่วยแก้ไขปัญหาได้ จากคำถามนี้ฉันรู้ว่าฉันอาจไม่สามารถตั้งค่าการตั้งค่าสำหรับ mac ของฉันได้ แต่ฉันสามารถตั้งค่าสำหรับ iOS Simulator ได้

iOS Simulator: ฮาร์ดแวร์ -> อินพุตเสียง -> ไมโครโฟนภายใน


-2

หากคุณใช้หูฟังผ่านสายเคเบิลแทนบลูทู ธ ทางออกที่ง่ายที่สุดควรใช้สายเคเบิลที่มีแจ็คโทรศัพท์ TRS (Tip + Ring + Sleeve) แทนการใช้แจ็คโทรศัพท์ TRRS (Tip + Ring + Ring + Sleeve) แจ็คโทรศัพท์ TRS รองรับสัญญาณสเตอริโอเท่านั้น แต่ไม่มีไมโครโฟน ดังนั้นจะไม่มีการส่งสัญญาณไมโครโฟนและไมโครโฟนในตัวควรทำงานอยู่


1
ไม่ฉันใช้งานผ่านบลูทู ธ ไร้สายคือเหตุผลหลักที่จะซื้อพวกเขาในสถานที่แรก :)
kovpas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.