2012-03-06 24 views
7

Mikrofonu ses kaydı yapacak bir uygulama yazıyorum. Benim problemim, kullanıcının krikoyu takıp krikoyu çıkardığı zaman bilmem gerek.C 'de Jack Algılama C#

Win32_SoundDevice WMI sınıfına baktım ve bana öyle geliyor ki Jack'in durumunu kontrol edebileceğim bir özellik yok.

IMMDeviceEnumerator içinde RegisterEndpointNotificationCallback bulduğumda ihtiyacım var gibi görünüyor ama C# içinde bunu nasıl yapacağımı bilmiyorum. Ses bağlantı noktası durumunu kontrol etmek için MMDeviceEnumerator yöntemlerini kullanmayı bilen var mı? Herhangi bir yardım çok takdir edilir.

cevap

1

Açık kaynak NAudio projesine göz atmak isteyebilirsiniz.

Kodlarını göz attım ve bunların IMMDeviceEnumerator interface için bir .Net sarıcısı olduğu görülüyor.

Bu proje Microsoft Public Lisansı kapsamında olduğu için muhtemelen projenizde kullanılabilir. Aşağıdaki kod ile

0

atın:

var enumerator = new MMDeviceEnumerator(); 
var d = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia); 
Console.WriteLine(d.Properties[new Guid("46d16a2c-5654-41c0-911e-7860d2bce7ee")].Value.ToString()); 

Bu özellik return'in 1 (Tıkanmış) ya da 0 (Unplugged) .. Sen NAudio kütüphane başvurulan olmalı

..

+0

alıyorum Guid'de bir "Nesne başvurusu bir nesnenin örneğine ayarlanmadı" hatası, kılavuz nedir? – kakopappa