Berpindah perangkat audio default dengan file batch

22

Saya mencoba menulis file batch pada Windows 10 yang memungkinkan saya untuk beralih di antara headset dan speaker saya sebagai perangkat audio default ketika saya menjalankannya. Saya tidak ingin menggunakan perangkat lunak pihak ketiga.

Saya mencoba mencari di sekitar tetapi saya hanya menemukan skrip lama yang tampaknya tidak berfungsi dan juga merujuk ke HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\jalan yang tampaknya tidak ada lagi. Saya tidak dapat menemukan informasi pada register Windows 10 tentang ini, juga saya tidak nyaman dengan mengutak-atik register jika saya tidak yakin dengan apa yang saya lakukan.

zerothehero
sumber
1
Jika Anda menyerah karena tidak ingin menggunakan pihak ke-3, saya telah menggunakan audioswit.ch/er [ya itu URL asli] selama sekitar 5 tahun. Switch kunci panas juga. [tidak ada afiliasi.]
Tetsujin

Jawaban:

33

Saya menghargai Anda tidak ingin menggunakan perangkat lunak pihak ketiga, tetapi sebagai opsi untuk jika Anda tidak keberatan menggunakan exe ~ 100kb, Anda dapat menggunakan Nircmd dengan perintah:

nircmd setdefaultsounddevice "Speakers" 1

atau

nircmd setdefaultsounddevice "Headphones" 1

Anda perlu memastikan Anda menggunakan nama persis perangkat audio Anda sebagaimana tercantum di bawah Playback Devices(klik kanan kontrol suara di baki sistem). Mungkin lebih mudah untuk mengubah nama mereka Propertiesmenjadi nama yang lebih sederhana, terutama jika nama tersebut berbenturan dengan cara apa pun.

Di 1akhir perintah menandakan "Perangkat Default". Menggunakan 2menandakan "Perangkat Komunikasi Default".


Jika Anda benar-benar tidak ingin menggunakan alat pihak ketiga, inilah perbedaan kunci registri yang tampaknya berubah ketika saya mengubah perangkat suara default saya, mungkin ada gunanya bagi Anda, tetapi saya tidak tahu persis apa sedang dilakukan. Tidak sesederhana 1 atau 0 untuk mengindikasikan apakah itu default, sepertinya.

masukkan deskripsi gambar di sini

Jonno
sumber
+1 dari saya. Ini cara terbaik untuk pergi. Jika Anda benar-benar tidak ingin menempatkan nircmd di suatu tempat di hard drive Anda (percayalah, Anda menginginkannya) itu alternatifnya adalah dengan mengubahnya dua kali dan melakukan ekspor reg dari kunci yang disebutkan di sini dan menjalankan hak .reg. mengajukan. Tidak yakin apakah ini akan berhasil, tapi itu akan menjadi pendekatan alternatif saya.
LPChip
Terima kasih atas jawabannya, saya benar-benar menemukan nircmd sendiri, tetapi benar-benar ingin tahu menemukan cara untuk melakukan itu tanpa perangkat lunak pihak ketiga. Jika tidak ada metode lain yang keluar, saya akan mempertimbangkan untuk menggunakannya.
zerothehero
+1. Mencoba pendekatan registri, tetapi tidak semudah yang disarankan (setidaknya dengan W10). Menggunakan NirCmd juga sekarang :)
MBaas
6

Karena Windows 8 (atau mungkin sebelumnya?) Konfigurasi audio PC disimpan di HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render. Di bawah Renderada kunci bernama GUID, masing-masing berisi DeviceStatenilai kata di root. Tapi bagaimana cara dikodekan?

Lihat DEVICE_STATE_XXX Konstanta di MSDN :

  • 1 Aktif
  • 2 Dinonaktifkan
  • 4 Tidak ada
  • 8 dicabut

Jadi skrip powershell / bat untuk beralih antara 1 dan 2 harus melakukan trik.

EDIT: Untuk mendapatkan nama perangkat yang dapat dibaca manusia, baca di {b3f8fa53-0004-438e-9003-51a46e139bfc},6bawah Propertiessubkunci

Aziz Kabyshev
sumber
Hai Aziz, saya mencoba ini di bawah W10, tetapi hanya berfungsi sekali - dan ketika saya mencoba untuk beralih ke perangkat sebelumnya melalui batch, tiba-tiba menghilang dari daftar yang Anda dapatkan ketika mengklik ikon baki untuk audio. Saya juga menemukan bahwa saya perlu mendapatkan izin untuk kunci registri terlebih dahulu (lihat groovypost.com/howto/… )
MBaas