DirecSound を使用するための基本設定

Page creation date :

The page you are currently viewing does not support the selected display language.

この Tips では「Microsoft Visual Studio 2005 Standard Edition」を使用して説明しますが、Visual Studio 2005 で C# が使えれば基本的に他の種類でも設定はほとんど同じです。

とりあえずここからの説明は、「Visual Studio 2005 の使い方をある程度覚えた」「C# 言語をある程度理解している」「フォームのプロパティ設定、イベントの追加の仕方が分かる」ことを前程に説明していきます。

また、必要なコンポーネント(Visual StudioDirectX SDK)などはひととおりインストールしていることとします。


最初にプロジェクトを「Windows アプリケーション」で新規に作成します。フォーム名は「Form1」から「MainForm」へと変更しておきます。

Visual Studio 2005 で DirectX 関連のプログラミングを行うには、「参照設定」に DirectX コンポーネントを追加しなくてはなりません。

DirectSound」を使用するのですから、DirectSound 関連のクラスを使用することになります。しかし、今の状態だとコードを記述してもビルド時にクラスを認識してくれません。まずはじめにクラスを「参照」できる状態にします。 ソリューションエクスプローラの「参照設定」を右クリックして「参照の追加」を選択します。

参照の追加

しばらくしてダイアログが表示されたら、「.NET」タブを選択して、以下の項目を選択します。

  • Microsoft.DirectX
  • Microsoft.DirectX.DirectSound

参照の追加ダイアログ

「OK」ボタンを押すと「参照設定」に追加されたことがわかります。

追加後


次に、DirectSound で曲を再生、停止をするために、「再生」「停止」ボタンを配置しましょう。最初はこの程度のものでいいです。後のTips で必要に応じて追加していくこともあります。

メインフォーム

ボタンの名称(Name)は好きなように付けてもかまいませんが、ここでは「再生」ボタンは「buttonPlay」、「停止」ボタンは「buttonStop」という風に名前を付けることとします。

次に「再生」「停止」ボタンで処理を行うために、ボタンをクリックしたときのイベントを追加します。各ボタンをダブルクリックすれば自動的にメソッドが追加されます。

ボタンイベントメソッド

DirectSound では「デバイス」というクラスを使用しますが、これをフォームが表示される前に作成し、フォームが閉じるときに破棄するようにするので、フォームの「Load」と「FormClosed」のイベントを生成しておきます。

フォームのイベント

では、MainForm のコードを書き換えますが、今回はイベントメソッドを自動で追加したので、手作業で追加するのは2行だけです。

MainForm.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.DirectSound;

namespace MDXSample
{
    /// <summary>
    /// メインフォーム
    /// </summary>
    public partial class MainForm : Form
    {
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public MainForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// フォームが表示される直前
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_Load(object sender, EventArgs e)
        {

        }
        /// <summary>
        /// フォームが閉じられる直前
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
        {

        }
        /// <summary>
        /// 再生ボタンを押したとき
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonPlay_Click(object sender, EventArgs e)
        {

        }
        /// <summary>
        /// 停止ボタンを押したとき
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonStop_Click(object sender, EventArgs e)
        {

        }
    }
}

追加した行は DirectSound のクラスの記述を簡単にするために、あらかじめ使用するネームスペースを宣言しています。


ビルド実行で何も問題なければ、この Tips は終了です。ボタンは一応押せますが、何も処理を記述していないので何も起こりません。  DirectX らしい処理は何もしていませんが、これらの設定は以降の Tips の基本として使いますので、覚えておいてください。  ちなみに実行すると下のようになります。

実行