「OpenALでビープ音を鳴らす-C」の編集履歴(バックアップ)一覧に戻る
OpenALでビープ音を鳴らす-C」を以下のとおり復元します。
*&this_page()

|&tags()|解説|最終更新日 &date()|&link_pdf(text=PDFで表示)|[[ダウンロード>http://www20.atwiki.jp/yosilove?cmd=upload&act=open&pageid=16&file=beap.zip]]|

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

#contents
*ソースコード
**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

----

復元してよろしいですか?

目安箱バナー