表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
mmeapi.h  作者: あ
1/3

waveIn~関数

メモ C言語+Windowsで録音ソフトを作りたい人向け

/*** デバイスを調べる ***/

★waveInGetNumDevs()

音声入力デバイスの個数を調べる関数。デバイス数が0なら録音できない。

音声入力デバイスには0から順番にIDが振られている。ID=-1は「既定のデバイス」に使われている。


★waveInGetDevCaps()

デバイス情報を取得する関数。WAVEINCAPS構造体を使用する。




/*** デバイスとバッファを準備する ***/

★waveInOpen()

音声入力デバイスを開く関数。

MM_WIM_OPENメッセージ(WIM_OPENメッセージ)が送信される。


★waveInPrepareHeader()

音声を記録するバッファを使用できるようにする関数。バッファにはWAVEHDR構造体を使用する。




/*** 録音を開始する ***/

★waveInAddBuffer()

バッファをデバイスに渡す関数。

渡したバッファは録音待ちのキューに追加される。


★waveInStart()

録音を開始する関数。

バッファが一杯になると、WAVEHDR構造体のdwFlagsフラグが立てられ解放され、更にMM_WIM_DATAメッセージ(WIM_DATAメッセージ)が送られる。


録音が途切れないようにするには、録音待ちのバッファを切らさないようにwaveInAddBuffer()を呼び出していく必要がある。


★waveInStop()

録音を一時停止する関数。バッファは解放されない。


★waveInReset()

録音を停止する関数。バッファがすべて解放される。

MM_WIM_DATAメッセージ(WIM_DATAメッセージ)が送られる。



/*** 録音を終了する ***/

★waveInUnprepareHeader()

waveInPrepareHeader()を呼び出した時に確保されたメモリを開放する関数らしい


★waveInClose()

waveInOpen()で開いたデバイスを開放する関数。

MM_WIM_CLOSEメッセージ(WIM_CLOSEメッセージ)が送られる。




/*** 必要な時に使う関数 ***/

★waveInGetID()

音声入力デバイスのハンドルからIDを調べるための関数


★waveInGetErrorText()

エラー番号からエラーの詳細を調べるための関数。


★waveInGetPosition()

録音時間を調べる関数らしい。VISTA以降は「IAudioClock::GetPosition()」を使う必要があるらしい。


★waveInMessage()

あまりよく分からないが、使えなくても問題はない。




/*** その他 ***/

WAVEINCAPSA構造体はANSI環境で使う。

WAVEINCAPSW構造体はワイド文字(=UTF-16)環境で使う。


録音が終わったバッファを再度デバイスに渡す際、

waveInUnprepareHeader() → waveInPrepareHeader()

という手順を踏む必要が有るか無いかは不明。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ