我正在WPF應用程序中需要錄製來自我的用戶的音頻消息。我跟着代碼here和它的工作正常。現在的問題是,如果它是一個桌面,我只是檢查是否有內置麥克風,而不是如果有任何外部麥克風連接或沒有。而且我還想知道用戶是否禁用了麥克風。你能告訴我如何檢查是否連接了任何外部麥克風。如果用戶無法錄製音頻,我需要顯示一條錯誤消息。如何檢查麥克風是否可用於錄音
2
A
回答
1
爲了檢測C#中硬件的變化,您可以使用WM_DEVICECHANGE
message,其中通知應用程序對設備或計算機的硬件配置進行了更改。
因爲我遠離這方面的專家,所以我寧願將您指向StackOverflow上的Detecting when a microphone is unplugged問題,而不是試圖向您解釋。該帖子接受的答案應該可以幫助您檢測麥克風何時被拔出。從接受答案的鏈接的問題:
using System.Runtime.InteropServices;
const int WM_DEVICECHANGE = 0x0219;
// new device is pluggedin
const int DBT_DEVICEARRIVAL = 0x8000;
//device is removed
const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
//device is changed
const int DBT_DEVNODES_CHANGED = 0x0007;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_DEVICECHANGE
{
//Your code here.
}
base.WndProc(ref m);
}
這裏有一些進一步的鏈接,可以幫助您與您的項目:
Sound Activated Recorder with Spectrogram in C#從CodeProject
.NET Voice Recorder從9頻道
.NET Voice Recorder CodePlex從
相關問題
- 1. IOS錄音,如何在麥克風播放忙碌前檢查麥克風/播放是否正常
- 2. 如何檢查android麥克風是否可用?
- 3. Java麥克風錄音
- 4. 如何檢測新麥克風是否可用?
- 5. 調整麥克風錄音音量
- 6. 使用HTML5麥克風錄製音頻?
- 7. 如何檢查麥克風是否插入/拔出
- 8. 如何檢查麥克風是否插入iPhone?
- 9. 檢測耳機是否有麥克風
- 10. 檢測麥克風是否開啓
- 11. javame:使用麥克風進行錄音時是否可以禁用AGC/VAD?
- 12. iOS xcode麥克風音量檢測?
- 13. 帶麥克風的Android哨音檢測
- 14. kissfft基音檢測麥克風
- 15. iPhone:高級麥克風錄音機API
- 16. AS3。麥克風錄音時間少於原始聲音
- 17. Ezstream是否可以發送傳入的麥克風音頻?
- 18. 靜音建於iPhone麥克風
- 19. 如何檢查麥克風是否被任何背景應用程序使用
- 20. 如何靜音麥克風c#
- 21. 如何監聽麥克風的噪音?
- 22. Silverlight Mac麥克風音量
- 23. 獲取麥克風音量
- 24. IOS,得到浮球液位麥克風updateMesters當麥克風被錄製音頻
- 25. 是否可以在Appcelerator Titanium中錄製音頻(來自麥克風)?
- 26. 如何通過使用內置麥克風錄製聲音android
- 27. 如何使用Windows API錄製麥克風的wav聲音?
- 28. 如何在使用javascript錄製後將麥克風靜音
- 29. 如何檢測麥克風是否存在
- 30. 檢查藍牙設備是否有麥克風Android
waveInDevices的列表包括所有連接的麥克風。外接麥克風或內置麥克風之間沒有區別。 –
@thefiloe是你說沒有辦法找出是否有任何外部麥克風連接? – Raj123
那麼,你可以嘗試使用MMDevices(Wasapi)。 Wasapi提供了關於設備的更多細節(查看IMMdevice的PropertyStore)。但是,如果你真的想使用過時的waveIn API,恐怕不用等待它是否是外部設備。 –