直列つなぎ。 -とある発達障害者の記録

知識と知識を繋ぐためのblog。 広汎性発達と診断されました。ぜんぜん役に立ってないけど。月収13万円、家賃4万円で生活するひつじ人間。

C# 入力デバイス名を取得するサンプルコード


 久しぶりの更新。
 購入したSC-06Dが文鎮化してしまい、落ち着かないやら落ち込むやらの日々です。
 修理の見積を依頼中。


 今回は、接続中のマイクなどデバイス名を取得するサンプルになります。
 DLした古いサンプルコードが難解で、1行ずつ新規プロジェクトに移植することで理解しているところです。


 今回使用したコード 
   http://www.codeguru.com/csharp/csharp/cs_graphics/sound/article.php/c10931/Windows-Mixer-Control-in-C.htm 
   Downloads
    AudioLib_demo.zip
    AudioLib_src.zip
  から。

 windows10 のvisual Studio 2015でも実行出来ます。ひつじだ。

 デザイナでコンボボックスを配置しませう。


・・・・・
sheep!! 
using System;
using System.Windows.Forms;
using WaveLib.AudioMixer;  //配布元 AudioLib_src.zip からDL
                                              //参照の追加 でWaveLibMixer.dllを追加

namespace WindowsFormsApplication19
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            //Initialization
       
        }


          


private void Form1_Load(object sender, EventArgs e)
        {
            LoadComboSettings();
        }

        private Mixers mMixers;

        private void LoadComboSettings()
        {
            mMixers = new Mixers();
      //mMiersをLoad(インスタンス化)
            //Load Output Combo
            MixerDetail mixerDetailDefault = new MixerDetail();
         
         
     

            mixerDetailDefault.MixerName = "Default"; //指定しないと空欄
          
         comboBox1.Items.Add(mixerDetailDefault);
                         //defaultデバイス名をセット

            foreach (MixerDetail mixerDetail in mMixers.Recording.Devices)
                                            //↑Because mMixers is null , add mMixers = new Mixers();
               //デバイス名列挙
               
        comboBox1.Items.Add(mixerDetail);
                  //列挙したものをaddするだけ。カンタン。
        comboBox1.SelectedIndex = 0;
        }
    }
}

実行結果 非常に単純なコードで実現出来ます。DLLが無いとムリだけど。


   20170101-2324Form1.jpg


   意外とC#だけでは出来ないことも出てきますねー。
   古いC++コードをC#でラッパーするといった手法があるそうですが、まだまだ良くわかりません・・・・・。

   
関連記事
スポンサーサイト

 C#

0 Comments

Leave a comment