สิ่งที่ฉันต้องการคือ:
- เมื่อฉันเสียบหูฟังฉันต้องการยกเลิกการปิดเสียงและตั้งค่าระดับเสียงเฉพาะ
- เมื่อฉันถอดปลั๊กหูฟังของฉันฉันต้องการให้เสียงถูกปิดเสียง (หรือตั้งค่าเป็นระดับเสียงเฉพาะ)
การตั้งค่าระดับเสียงไม่ได้เป็นปัญหา แต่อย่างใดฉันต้องทำสิ่งนี้เมื่อถอด / เสียบหูฟังดังนั้นฉันจึงมองหาวิธีที่จะได้รับการแจ้งเตือนจากเหตุการณ์เหล่านั้น
ฉันพบอย่างรวดเร็ว/proc/asound/card0/codec#0
เพื่อระบุว่ามีการเสียบหูฟังหรือไม่ดังนั้นฉันจึงพยายามตรวจสอบโดยใช้inotifywait
และเปลี่ยนระดับเสียงตามการแจ้งเตือนที่แก้ไข น่าเสียดายที่inotifywait
ล้มเหลวเพราะprocไม่ใช่ระบบไฟล์ธรรมดา
มีวิธีอื่นในการทำเช่นนี้ (อาจจะผ่าน PulseAudio)
อุปกรณ์เสียง: Intel HDA , ตัวแปลงสัญญาณเสียง: Conexant CX20585
เพื่อสรุปสิ่งที่ฉันได้ลองไปแล้ว:
- Ear Candy: ไม่ได้ทำงานเลยในระบบของฉัน ดูเหมือนว่าจะเป็นโครงการที่ถูกทิ้งร้าง?
- รหัสที่โพสต์โดยKarl Bielefeldtอาจใช้ได้กับฮาร์ดแวร์บางตัว แต่ไม่สามารถทำได้
- แนวคิดจากStephenPaulgerล้มเหลวเนื่องจากขาดช่อง 'ลำโพง'
- ได้แรงบันดาลใจจากaking1012ฉันทำให้มันทำงานได้โดยการแฮ็กในโค้ดเคอร์เนล (หลังจากค้นหาโค้ดตัวแปลงสัญญาณแจ็คของตัวแปลงสัญญาณ) แต่นั่นเป็นวิธีที่ค่อนข้างยุ่งยาก
ดังนั้นฉันยังคงมองหาวิธีที่ง่ายในการทำเช่นนี้