カクタスソフトウェア
カクタスソフトウェア
サウンド MIDI マルチメディア アプリケーション

サウンドバッファ

プライマリーバッファやカーネルミキサーについてはセクション「アンマネージ型DirectSound」を参照して下さい。

セカンダリーバッファの作成

セカンダリーバッファは、サウンドデータを格納するためのバッファです。バッファ作成に必要なパラメータをBufferDescriptionクラスに設定してSecondaryBufferクラスを作成します。

public class MySoundDevice
{
    private SecondaryBuffer     SoundBuffer = null;
    ...
    public void CreateStreamingBuffer()
    {
        BufferDescription bufferDesc = new BufferDescription();
        bufferDesc.Flags =
            BufferDescriptionFlags.CanGetCurrentPosition |
            BufferDescriptionFlags.GlobalFocus;
        bufferDesc.BufferBytes = BufferSize;    // バッファサイズ
        bufferDesc.Format = WaveFormatEx;       // ウェーブフォーマット;
        bufferDesc.Guid3DAlgorithm = Guid.Empty;

        SoundBuffer = new SecondaryBuffer(bufferDesc, RenderDevice);
    }

以下にBufferDescriptionクラスのプロパティを示します。

プロパティ 機能 コメント
BufferBytes 新しいバッファのサイズを設定する。 単位はバイトです。
CanGetCurrentPosition 再生位置を正確に取得する。 通常セットします。
ControlPositionNotify 再生位置の通知機能を有効にする。  
Control3D 3Dコントロールを可能にする。  
ControlFrequency 再生速度を変更できる。  
ControlPan パンコントロールを可能にする。 3Dと同時に指定できません。
ControlEffects エフェクトを可能にする。  
ControlVolume ボリュームコントロールを可能にする。  
DeferLocation バッファをリソースに割り当てることができる。  
Flags バッファの能力を指定するフラグ。  
Format WaveFormat構造体を指定する。 多チャンネルフォーマットは支援しません。
GlobalFocus アプリケーションがフォーカスを失っても再生を続ける。  
StickyFocus アプリケーションがフォーカスを失っても再生を続ける。  
Guid3DAlgorithm 3D機能を示すGUIDを指定します。  
StaticBuffer 可能であればバッファをサウンドカード上のメモリに割り当てる。 サウンドカードへの割り当てに失敗すると、コンピュータのメモリに割り当てます。
LocateInHardware バッファをサウンドカード上のメモリに割り当てる。 サウンドカードへの割り当てに失敗すると、エラーを戻します。
LocateInSoftware バッファをコンピュータのメモリに割り当てる。 サウンドカードへの割り当てが可能でもコンピュータのメモリに割り当てます。
Mute3DAtMaximumDistance サウンドは最大距離で無音になる。  
PrimaryBuffer プライマリーバッファを指定する。 セカンダリーバッファ作成時はセットしません。

ドキュメントの先頭へ

カクタスソフトウェア 技術協力 資料室 資料室の広場 SourceForge.jp お問い合わせ