2017-04-05 191 views
0

我試圖創建一個腳本,當按下熱鍵時會觸發聲音效果,這可能看起來不太難,但我也希望能夠將它輸出到特定的音頻設備,在我的情況下,虛擬音頻電纜。輸出聲音到音頻設備

我在網上看了一下,我看到了很多可能的解決方案,但是沒有一個解決了我的問題。看起來,AHK中的正常SoundPlay功能無法輸出到特定的音頻設備,但我也在尋找其他選項,例如通過wmplayer或其他媒體播放器通過批處理腳本播放聲音,但我無法找到解決方案,這將讓我輸出的聲音特定的音頻設備...

所以我的問題是什麼是最好的方式播放聲音的特定非默認音頻設備(虛擬音頻電纜),可以在命令提示符或autohotkey內完成?


編輯:我找到了一個解決方案,請參閱下面的答案。你需要

回答

1

所以我能夠做到什麼,我試圖完成。我會告訴你我是怎麼做到的:

在互聯網上搜索了一些後,我遇到了一個名爲IrrKlang的C#庫。使用IrrKlang我做了一個小的控制檯應用程序,我可以通過playsound soundfile.mp3 0調用,播放是.exe的名稱,第一個參數是播放聲音文件的路徑,來自playsound.exe的位置,最後一個參數是用於選擇音頻設備的號碼,這個數字應該是猜測,但經過一些試驗和錯誤後,您可以找到虛擬音頻電纜或其他音頻設備的號碼。

對於未來來這裏的人,我已將我的代碼放在github上。

0

一切都在這裏:

Lexikos的Vista音頻控制功能

注:音色與SoundGet上的AutoHotkey v1.1.10及更高版本支持Vista和更高版本本身。除非您想使用SoundSet/SoundGet不支持的高級功能,否則不需要VA.ahk。

https://autohotkey.com/board/topic/21984-vista-audio-control-functions/

要更改默認的輸出設備,您可以編寫腳本的聲音屬性中的cPanel:

Run, mmsys.cpl 
WinWait, Sound 
    ControlSend, SysListView321,{Down num} ' num matches device position 
    Sleep, 100 
    ControlClick, &Set Default 
    Sleep, 100 
    ControlClick, OK 
WinWaitClose, Sound 

H個,

+0

感謝您的回覆!我將如何去使用Vista Audio Control播放特定音頻設備的聲音?我在文檔中看到有一個函數VA_GetDevice來獲取某個設備,但是如何在該設備上播放聲音? – MichielP1807

+0

VA讓你知道哪個設備正在使用中。之後,我編寫了cpanel腳本來選擇另一個。但是,這無助於將聲音導向任意設備,而不管cpanel默認聲音設備設置如何(請參閱修改後的答案)。不過,有些應用程序可以讓你這樣做。 – PGilm