[Atelier Blue アトリエブルー]HomeプログラミングManaged DirectXMusic>とりあえず音を出してみる

とりあえず音を出してみる

肩の力を抜くためにも今回はとりあえず音を流してみましょう。

ソースコード

「Microsoft.DirectX」と「Microsoft.DirectX.DirectSound」を参照に追加しておいてください。

using System;
using System.Windows.Forms;
using System.IO;
using Microsoft.DirectX.DirectSound;
using DS = Microsoft.DirectX.DirectSound;


namespace Sound2
{
    /// <summary>
    /// Class1 の概要の説明です。
    /// </summary>
    public class SoundForm:Form
    {
        private Device device_;
        private DS.SecondaryBuffer secondaryBufferA_;
        //開くファイル
        private string fileName =@"i:\temp\test.wav";

        public SoundForm()
        {
            this.Text="DirectSoundのテスト";

            DSInitialize();
        }


        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if(secondaryBufferA_ != null)
                {
                    secondaryBufferA_.Stop();
                    secondaryBufferA_.Dispose();
                }
                if(device_ != null)
                {
                    device_.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        private void DSInitialize()
        {
            device_ =new Device();

            //協調レベルの設定
            device_.SetCooperativeLevel(this,CooperativeLevel.Normal);

            //バッファについての情報設定クラス
            BufferDescription desc=new BufferDescription();

            //セカンダリバッファを作成
            secondaryBufferA_ =
                new SecondaryBuffer(fileName,desc,device_);

            //再生開始
            secondaryBufferA_.Play(0,0);
        }
    }

    public class Program
    {
        public static void Main()
        {
            Application.Run(new SoundForm());
        }
    }
}

えーと、まあ動きます。ですが「Waveファイルしか再生できません」。これはDirectSoundの仕様です。DirectMusicならば、mp3等も再生しやすいのですが………。

ああ、そういえばメモリも大量に消費します。ここら辺については次回以降で頑張って改善していきましょう。


ページの一番上へ
前のページへ 一覧に戻る 次のページへ

初版2006-4-29
[Atelier Blue アトリエブルー]HomeプログラミングManaged DirectXMusic>とりあえず音を出してみる