「OpenALでビープ音を鳴らす-C」の編集履歴(バックアップ)一覧はこちら
「OpenALでビープ音を鳴らす-C」(2009/09/24 (木) 23:37:02) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*&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
----
*&this_page()
|&tags()|解説|最終更新日 &date()|&link_pdf(text=PDFで表示)|[[ダウンロード>http://www20.atwiki.jp/yosilove?cmd=upload&act=open&pageid=16&file=beap.zip]]|View &counter(total)|
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
----
表示オプション
横に並べて表示:
変化行の前後のみ表示: