※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

OpenALでビープ音を鳴らす-C


C Mac OpenAL ソースコード 解説 最終更新日 2009-09-24
link_pdfプラグインはご利用いただけなくなりました。
ダウンロード View -

MacOSXのOpenALでビープ音を鳴らすサンプル

ソースコード

alert.c

#include <OpenAL/al.h>
#include <OpenAL/alc.h>
#include <math.h>
#include <stdio.h>
#include <unistd.h>//sleep関数用

int main(){
   ALCdevice *device;
   ALCcontext *context;
   ALshort data[22050];
   ALuint buffer, source;
   int i;

   //デバイスを開く
   device = alcOpenDevice(NULL);
   //コンテキストを生成
   context = alcCreateContext(device, NULL);
   //使用するコンテキストの指定
   alcMakeContextCurrent(context);
   //バッファの生成
   alGenBuffers(1, &buffer);

   //信号を生成する
   for (i = 0; i < 22050; ++i) {
       data[i] = sin(i * 3.14159 * 2 * 440 / 22050) * 32767;
   }
   //信号をバッファに入れる
   alBufferData(buffer, AL_FORMAT_MONO16, data, sizeof(data), 22050);
   //ソースを生成
   alGenSources(1, &source);
   //バッファからソースを作る
   alSourcei(source, AL_BUFFER, buffer);
   //ソースを再生する
   alSourcePlay(source);
   sleep(1);

   //お片づけ
   alSourceStop(source);
   alDeleteSources(1, &source);
   alDeleteBuffers(1, &buffer);
   alcMakeContextCurrent(NULL);
   alcDestroyContext(context);
   alcCloseDevice(device);
   return 0;
}

Makefile

Mac

CC = gcc -O2 -Wall
FRAMEWORKS = -framework OpenAL

.c: 
	$(CC) $@.c $(FRAMEWORKS) -o $@


実行方法

コンパイルして
make

実行
./alert

実行結果

「ピー」と鳴ります。

テスト環境

MacOSX 10.5.8
gcc version 4.0.1 (Apple Inc. build 5493)
OpenAL

Tanks



添付ファイル