亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

Managed Windows APIを使ってみた。

Managed Windows API

マイク入力がしたくて、ちょっと使ってみました。

結論から言うと、マイク入力は取れそうにない・・・(それっぽいイベントがない)
ドキュメントが少ないせいもあるんだろうけど、単純なラッパではなく使いやすくしようと頑張っている(がそのせいで好きなことはできない)

なんか微妙な気がするのだが。。。そもそも無茶をしたいからわざわざWinAPIを使うのだし。
とはいえ音声系だけでなく他の名前空間もいじってみようとは思う。

とりあえずオーディオのソースっぽいオブジェクトは取得できたので、そこまでくらいはサンプルを。

        static List<DestinationLine> _lines = new List<DestinationLine>();
        public static void GetMic()
        {
            // ミキサーを列挙
            for (uint i = 0; i < Mixer.MixerCount; i++)
            {
                //オープン
                var mixer = Mixer.OpenMixer(i);
                //ミキサーから音声入力っぽいラインを取得
                 _lines = _lines.Concat(mixer.DestinationLines.Where(
                    param => param.ComponentType == MixerLineComponentType.DST_WAVEIN 
                                || param.ComponentType == MixerLineComponentType.SRC_MICROPHONE)).ToList();                               
                    
            }
            foreach (var line in _lines)
            {
                //なんか処理
            }
        }

ドキュメントないのはやっぱり辛いね。うん。