2011-06-20 5 views
2

WAVEHDR構造の場合、どのデータをlpDataバッファに入れるべきですか?WAVEHDRの使用方法

MSDNは、単に言う:

をlpData

波形バッファへのポインタ。

typedef struct wavehdr_tag { 
    LPSTR    lpData; 
    DWORD    dwBufferLength; 
    DWORD    dwBytesRecorded; 
    DWORD_PTR   dwUser; 
    DWORD    dwFlags; 
    DWORD    dwLoops; 
    struct wavehdr_tag *lpNext; 
    DWORD_PTR   reserved; 
} WAVEHDR, *LPWAVEHDR; 

おかげ

+0

波形データを読み取る必要があります。あなたはそれが何であるかを知っていることが期待されます。調べるにはウェブを使用してください。 –

+0

私はこれがすべてあまりにも曖昧であることがわかります。なぜこれについてまともな情報はありませんか?私は例えばサイン波を生成する方法やWAVファイルを再生する方法を知りたい。この機能はそれに適していますか? – Midas

+0

まともな情報がたくさんあります。あなたは何の本を読んでいますか?ウェブ上でどのようなサイトが見つかりましたか。これらのMSDNトピックは参考用です。彼らは波型について教えてくれるわけではありません。 –

答えて

0

CCRMA WAVEファイル形式のまともな概要を説明しています。

0

データがさまざまな形式になっている可能性があるため、あいまいです。フォーマットは通常WAVEFORMATEXで指定されます。

2

私はこれを見つけましたtutorial David Overtonが非常に役に立ちました。

基本的にwaveOutOpenを呼び出すと、フォーマット構造が渡されます。ここでは彼のコードからです:

WAVEFORMATEX wfx; /* look this up in your documentation */ 
wfx.nSamplesPerSec = 44100; /* sample rate */ 
wfx.wBitsPerSample = 16; /* sample size */ 
wfx.nChannels = 2; /* channels*/ 

はその後lpDataであなたのデータは右、左、左、サンプルあたりわずか2バイト(符号付きshort int型)である、など

0

lpDataは古いDOS DMAバッファのようなものです。 これで、1つのブロックループのようにトラックを書くことができます。

だから、あなたはいくつかの適切な配列を宣言しています... char myarray [porpersize]。 次にポイント - >>> myhdrstruc.lpData = & myarray [0]