[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プログラミング、3DCGとその他いろいろについて
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
前回の補足として、OpenALの関数の解説をしておきますね。
ALUTの関数
(alut.dll)
alutInit
OpenALをより簡単に使うためのライブラリとしてALUT(OpenAL Utility Library)というのがあるのですが、それを初期化するのにalutInit関数というのを使います。
ALboolean alutInit ( int *argcp, char **argv);
これを呼ぶとALUTライブラリを初期化してALUTが使えるようになります。
引数は何を意味しているのかというと……コマンドラインの引数のようですね。
最初のargcpはたぶんargvの数を表す変数へのポインタで、argvはコマンドラインの引数そのもののようです。
ドキュメントには用途が詳しく書いていないのでどう使えばいいのかよくわかりませんが、この両方にNULLを渡してもかまわないそうです。(何のためにあるんだろ・・・)
戻り値は成功したならtrue、失敗したならfalseです。
alutExit
また、ALUTライブラリを使って音を出した後、アプリケーション終了前に後始末としてalutExit関数を呼ばなければいけません。(もちろん、この関数を呼ばずにアプリケーションを終了して、クリーンアップはOSに任せるというのも一つの手です)
ALboolean alutExit();
この関数を呼んだあと、またalutInitを使ってALUT初期化するのもアリだそうです。
戻り値は成功したならtrue、失敗したならfalseです。
alutCreateBufferHelloWorld
ALUTはまた、初学者のために"Hello, World!"という音声データをあらかじめ用意してくれています。
この音声データを取得するにはalutCreateBufferHelloWorld関数を使います。
ALuint alutCreateBufferHelloWorld();
Bufferというのは音声データを表すオブジェクトです。これを音源を表すSourceオブジェクトにセットし、再生することでスピーカーから音を出します。Bufferは純粋な音声データだけであるのに対し、Sourceは音源の位置、速度、向きなどから物理法則にしたがって音声データを加工する役割を持っているようです。Sourceが遠くにあれば音は小さくなりますし、こちらへ近づいてきているのならドップラー効果で音が高くなります。
戻り値は"Hello, World!"という音声データのBufferを表すハンドルのようなもの(整数)です。(ただし、OpenALではこれをハンドルではなくNameと表現するようですね。今後はNameという用語を使うことにします)
OpenALの関数