2015-01-20 123 views
0

我正在使用naudio通過軟電話通過電話向某人播放wave文件的項目。打電話的人,佩戴USB耳機(這是一個外部聲卡)需要能夠與波形文件一起說話。現在,我正在將兩根3.5毫米音頻電纜從輸出端連接到計算機背面的輸入端,以實現此目的。這使得我不得不使用板載聲卡來處理聲音和頭部聲音,這意味着我必須根據需要切換默認輸入音頻設備,以便讓人聽到或者聽到聲音。這會導致softphone應用程序出現問題,具體取決於其設備的設置。我想完全切掉板載聲卡。我想將我的wave音頻和說話的人都發送到同一個輸入設備中。如何從輸出設備向輸入設備發送音頻流?

當我播放音頻,這是我打電話的代碼:

WaveStream waveStream = new WaveFileReader(@"C:\Users\Public\Music\tester.wav"); 

WaveOut waveOut = new WaveOut(); 

waveOut.DeviceNumber = int.Parse(device1); 

WaveOut.Init(waveStream); 

WaveOut.Play(); 

此時我很想不僅發送到所選的輸出設備,還向輸入設備爲好。有什麼簡單的方法可以做到這一點?感謝您的幫助提前。

回答

0

不幸的是,各種Windows音頻API不能讓您用自己的音頻替換實際輸入設備接收到的音頻,所以這不是NAudio開箱即可實現的。你需要的是創建一個虛擬音頻輸入設備。這是相當多的工作,所以最簡單的解決方案是購買類似Virtual Audio Cable,這將允許您創建虛擬聲音設備並將它們打包在一起。

+0

謝謝馬克,我很害怕這個。我發現通過將耳機輸入發送到板載輸出(似乎更容易從輸入到輸出,然後反過來),但我昨晚進行了測試,似乎會導致音頻質量降低大時間。波浪聽起來很好,但聲音很糟糕。希望我能找到解決方案。 – JasonV 2015-01-21 16:44:29

相關問題