Untuk beralih ke output audio HDMI (monitor) dan kembali ke output audio normal dari jack audio sistem (untuk headphone, karena monitor saya tidak memiliki audio keluar), saya menemukan diri saya membuka preferensi suara dan memilih saluran yang tepat setiap kali. Apakah ada cara saya dapat membuat tombol toggle di panel atau menetapkan beberapa tombol cara pintas untuk beralih karena saya sering melakukan switching.
:aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 7: STAC92xx Digital [STAC92xx Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
sound
software-recommendation
iJeeves
sumber
sumber
Jawaban:
Dengan pulseaudio kami dapat memilih keluaran dari baris perintah:
Perintah ini dapat digunakan dalam peluncur, skrip atau bahkan ditugaskan untuk pintasan keyboard untuk beralih cepat antara sink yang berbeda. Silakan ganti "SINKNAME" dengan nama atau nomor wastafel yang Anda inginkan. Daftar sink yang diketahui dengan nomor dan namanya yang terkait diberikan oleh perintah:
Catatan: Mengubah wastafel keluaran melalui antarmuka baris perintah hanya dapat berlaku jika pembacaan perangkat target stream dinonaktifkan. Ini dapat dilakukan dengan mengedit baris yang sesuai di
/etc/pulse/default.pa
:Atau kita dapat menjalankan pulseaudio untuk secara bersamaan mengeluarkan suara ke perangkat audio internal, dan ke perangkat HDMI dengan menjalankan paprefs dengan opsi untuk menambahkan perangkat output virtual:
sumber
pacmd set-default-sink "alsa_output.pci-0000_00_1b.0.analog-stereo"
danpacmd set-default-sink "alsa_output.pci-0000_00_1b.0.hdmi-stereo"
hanya berfungsi setelah memilih profil yang sesuai di Preferensi Suara. Jika saya memiliki HDMI yang diatur dan saya menjalankan perintah pacmd untuk stereo analog, saya mendapatkan erorSink alsa_output.pci-0000_00_1b.0.analog-stereo does not exist.
Tetapi jika saya secara manual memilih profil dari GUI Preferensi Suara dan menjalankan perintah yang sama, saya tidak mendapatkan kesalahan. Jadi tidak membantu untuk beralih.Saya menemukan ini sangat mengganggu diri saya sendiri dan menulis skrip untuk beralih output:
dan kemudian ikat kunci yang tidak digunakan pada keyboard saya untuk menjalankannya (lihat Bagaimana cara mengikat perintah kustom ke pintasan keyboard? )
sumber
Namun Script Sink Switcher Lain
diuji pada Ubuntu 16.04
Tetapi yang ini memungkinkan Anda untuk hanya beralih audio dari aplikasi yang Anda inginkan.
PENGGUNAAN: Fokuskan aplikasi yang Anda ingin ubah wastafelnya dan jalankan skrip ini. Itu dia!!!
Script ini mendeteksi aplikasi yang sedang dalam fokus, menemukan semua audio yang diputar darinya, dan mengalihkannya ke bak cuci berikutnya yang tersedia.
https://gist.github.com/madacol/1a0d8569166886d2d98f073f7f5c5fe3
Menjelaskan naskahnya
Kita perlu menemukan PID aplikasi pada fokus
Tetapi pertama-tama kita membutuhkan xid
Kemudian masukkan di sini
$xid
untuk mendapatkan pid aplikasiSekarang kita perlu menemukan input wastafel terkait dengan PID itu
Pertama mari kita linearkan output dari perintah
pacmd list-sink-inputs
untuk daftar satu input-tenggelam per baris, menunjukkan indeksnya, tenggelam dan pid pada baris yang samamari kita analisa langkah demi langkah:
grep -E 'index:|sink:|process.id
hanya pertahankan baris yang berisiindex:
,sink:
atauprocess.id
tr '\n' ' '
bergabung dengan semua linitr -d '"'
menghapus semua"
karakter. Diperlukan untuk mendapatkan pid tanpa tanda kutipsed -e 's/index:/\n/g'
mengganti semuaindex:
kemunculan dengan karakter baris baru\n
tail -n +2
menghapus baris pertama karena kosongDan hasilnya adalah seperti ini:
Mari kita menganalisis satu baris untuk memahami apa artinya:
182
adalah indeks input-sink,0
adalah indeks sink, dan13752
pada akhirnya, adalah pid dari aplikasi yang dimilikiKemudian kita beralih melalui setiap baris
Dan akhirnya hanya filter pid-input wastafel yang cocok dengan pid aplikasi yang difokuskan
Mengekstrak data
Dengan
awk
kita bisa mendapatkan elemen yang kita butuhkanDapatkan jumlah sink, untuk mengetahui kapan rotasi sink harus dimulai lagi dari 0.
Menemukan bak cuci berikutnya, kita harus beralih melalui daftar bak cuci, untuk mengetahui mana yang cocok dengan current_sink_index dan untuk mengetahui indeks bak cuci berikutnya.
Dan akhirnya, kami memindahkan input wastafel untuk diputar di next_sink_index
Catatan di Ubuntu 16.04:
Saat mengonfigurasi tombol pintasan, saya tidak bisa membuatnya berfungsi dengan pengelola pintasan ubuntu. Jadi saya harus menginstal compizconfig-settings-manager
sumber
Jika Anda menggunakan Gnome Shell dan bukan Unity, Anda dapat menginstal ekstensi di bawah ini. Anda kemudian dapat beralih dari jalan pintas volume di panel atas. https://extensions.gnome.org/extension/142/output-device-chooser-on-volume-menu/
sumber
Karena hanya ada satu kartu suara yang terlihat di tangkapan layar, saya pikir output kartu suara ini harus diaktifkan.
Sebagai contoh: Saya memiliki Notebook dengan satu kartu suara terintegrasi, tetapi memiliki output digital (SPDIF) ketika merapat.
Jadi yang ingin saya lakukan adalah mengganti output aktif atau "Profil" di pulseaudio.
Saya menemukan perintah yang melakukan hal itu:
Apa yang saya lakukan untuk mendapatkan nama yang benar untuk pengaturan keluaran yang saya inginkan - di sini, keluaran digital, tetapi input analog (mikro) - adalah:
sumber
Saya sudah mencoba mencari solusi untuk masalah ini juga. Pada Ubuntu 11.04 ini tampaknya tidak mungkin secara langsung, saya hanya menemukan panduan ini untuk menambahkan HDMI dan Analog sebagai output terpisah, sehingga pacmd menunjukkan 3 sink sekarang. Maka dimungkinkan untuk beralih antar sink menggunakan perintah di atas. ( lihat juga )
Namun ternyata Ubuntu 11.11 akan mendapatkan PulseAudio dengan sistem deteksi jack. Menurut situs web di bawah ini, David Henningsson telah membuat kode deteksi melalui udev sehingga audio pulsa secara otomatis beralih ke output tambahan terakhir, termasuk beralih di antara profil berbeda dari kartu suara yang sama (seperti halnya dengan pengaturan Anda dan saya). (lihat disini )
Jadi saya berharap ini akan berhasil, ketika saya mencoba versi final Jumat depan.
sumber
Berdasarkan banyak jawaban sebelumnya, saya menulis sebuah skrip yang mengatur bak pemutaran bergantian di antara yang tersedia.
Cara terbaik untuk menggunakannya adalah dengan membuat pintasan keyboard untuk menjalankannya, jadi setiap kali Anda menekan kombinasi tombol, audio dialihkan ke bak cuci berikutnya yang tersedia.
Kode tersedia di sini: https://gist.github.com/germank/7fa2fb07d45a838bf890addadd8bea8c
sumber
Dalam kasus saya opsi analog di mana tidak ada dalam daftar. Instal pavucontrol:
sudo apt install pavucontrol
Dapat memperbaiki masalah ini, dengan memulai aplikasi:
pavucontrol
(masukkan)Sekarang saya dapat membuat dan memilih profil yang berbeda (di bawah Linux Mint):
sumber
Alternatif untuk Sound Switcher Indicator (yang meminta menambahkan PPA) adalah dengan membuat perintah (atau skrip) dan menyebutnya dengan pintasan:
Dalam kasus saya adalah
hdmi-stereo-extra1+input
profil, jadi dalam satu baris adalah:Anda dapat menggunakan pintasan khusus (
gnome-control-center keyboard
) untuk menjalankannyabash -c
(akan memperingatkan Anda jika ada konflik dengan pintasan lainnya):Saya menggunakan:
Anda juga dapat menambahkan
alias
ke.bashrc
.Diuji pada Ubuntu 16.04 dan 18.04
Jika Anda tidak ingin perilaku di atas pada skrip, saya membuat beberapa perubahan berdasarkan @ user829996 jawaban:
sumber
Saya menulis applet indikator yang memungkinkan Anda mengganti output suara.
sumber