日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openal 基础知识4

發(fā)布時(shí)間:2024/1/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openal 基础知识4 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)

1.?buffer函數(shù)

void alGenBuffers(ALsizei n /* buffer數(shù)*/, ALuint * buffers /* buffer ID數(shù)組*/);

void alDeleteBuffers(ALsizei n /* buffer數(shù)*/, ALuint * buffers /* buffer ID?數(shù)組*/);

ALboolean alIsBuffer(ALuint buffer);

//?buffer填充數(shù)據(jù)

void alBufferData(ALuint buffer, ALenum format/*聲音格式*/,const ALvoid *data/*數(shù)據(jù)地址*/

????????????????????????, ALsizei size/*數(shù)據(jù)字節(jié)數(shù)*/,ALsizei freq/*聲音頻率*/);

????????????????聲音格式:AL_FORMAT_[MONO8, MONO16, STEREO8, STEREO16]

//?設(shè)置buffer的浮點(diǎn)數(shù)屬性

void alBufferf (ALuintbuffer, ALenum param/*屬性名*/,ALfloat value/*屬性值*/);

void alBuffer3f (ALuintbuffer, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);

void alBufferfv (ALuintbuffer, ALenum param, ALfloat *values);

//?設(shè)置buffer的整數(shù)屬性

void alBufferi (ALuintbuffer, ALenum param, ALint value);

void alBuffer3i (ALuintbuffer, ALenum param, ALint v1, ALint v2, ALint v3);

void alBufferiv (ALuintbuffer, ALenum param, ALint *values);

//?獲取buffer屬性值

void alGetBufferf(ALuint buffer, ALenum param, ALfloat *value);

void alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);

void alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values);

void alGetBufferi(ALuint buffer, ALenum param, ALint *value);

void alGetBuffer3i(ALuint buffer, ALenum param, ALint *v1, ALint *v2, ALint *v3);

void alGetBufferiv(ALuint buffer, ALenum param, ALint *values);

?

2.?source函數(shù)

void alGenSources(ALsizei n, ALuint *sources);

void alDeleteSources(ALsizei n, ALuint *sources);

ALboolean alIsSource(ALuint source);

?

void alSourcef (ALuintsource, ALenum param, ALfloat value);

void alSource3f (ALuintsource, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);

void alSourcefv (ALuintsource, ALenum param, ALfloat *values);

void alSourcei (ALuintsource, ALenum param, ALint value);

void alSource3i (ALuintsource, ALenum param, ALint v1, ALint v2, ALint v3);

void alSourceiv (ALuintsource, ALenum param, ALint *values);

?

void alGetSourcef(ALuint source, ALenum param, ALfloat *value);

void alGetSource3f(ALuint source, ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);

void alGetSourcefv(ALuint source, ALenum param, ALfloat *values);

void alGetSourcei(ALuint source, ALenum param, ALint *value);

void alGetSource3i(ALuint source, ALenum param, ALint *v1, ALint *v2, ALint *v3);

void alGetSourceiv(ALuint source, ALenum param, ALint *values);

?

void alSourcePlay(ALuint source);

void alSourcePause(ALuint source);

void alSourceStop(ALuint source);

void alSourceRewind(ALuint source); //停止source并將其狀態(tài)設(shè)置為AL_INITIAL

void alSourcePlayv(ALsizei n, ALuint *sources); //播放一系列source

void alSourcePausev(ALsizei n, ALuint *sources);

void alSourceStopv(ALsizei n, ALuint *sources);

void alSourceRewindv(ALsizei n, ALuint *sources);

?

voidalSourceQueueBuffers (ALuint source, ALsizei n, ALuint *buffers); //alGetSourcei(source,

????????????????AL_BUFFERS_PROCESSED,&x)獲取已經(jīng)處理了的buffer數(shù)

voidalSourceUnqueueBuffers (ALuint source, ALsizei n, ALuint *buffers);

?

3.?listener函數(shù)

void alListenerf(ALenum param, ALfloat value);

void alListener3f(ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);

void alListenerfv(ALenum param, ALfloat *values);

void alListeneri(ALenum param, ALint value);

void alListener3i(ALenum param, ALint v1, ALint v2, ALint v3);

void alListeneriv(ALenum param, ALint *values);

void alGetListenerf(ALenum param, ALfloat *value);

void alGetListener3f(ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);

void alGetListenerfv(ALenum param, ALfloat *values);

void alGetListeneri(ALenum param, ALint *value);

void alGetListener3i(ALenum param, ALint *v1, ALint *v2, ALint *v3);

void alGetListeneriv(ALenum param, ALint *values);

?

4.?狀態(tài)函數(shù)

????????AL_DOPPLER_FACTOR f?全局多普勒系數(shù)

????????AL_SPEED_OF_SOUND f?聲音的每秒傳播速度

????????AL_DISTANCE_MODEL i?距離模型枚舉值

void alEnable (ALenumcapability); //使能某項(xiàng)功能

void alDisable (ALenumcapability);

ALboolean alIsEnabled(ALenum capability);

?

// FIXME:這一堆不知道是干嗎的。。。

ALboolean alGetBoolean(ALenum param);

ALdouble alGetDouble(ALenum param);

ALfloat alGetFloat(ALenum param);

ALint alGetInteger(ALenum param);

void alGetBooleanv(ALenum param, ALboolean *data);

void alGetDoublev(ALenum param, ALdouble *data);

void alGetFloatv(ALenum param, ALfloat *data);

void alGetIntegerv(ALenum param, ALint *data);

?

const Alchar *alGetString (ALenum param); // param

????????????????AL_VENDOR,AL_VERSION, AL_RENDERER, AL_EXTENSIONS

?

void alDopplerFactor(ALfloat value); //設(shè)置多普勒因子,默認(rèn)1.0

void alSpeedOfSound(ALfloat value); //默認(rèn)343.3

void alDistanceModel(ALenum value); //設(shè)置OpenAL的距離模型

????????????????AL_INVERSE_DISTANCE//倒數(shù)距離

????????????????AL_INVERSE_DISTANCE_CLAMPED//默認(rèn)值

????????????????AL_LINEAR_DISTANCE //線性距離

????????????????AL_LINEAR_DISTANCE_CLAMPED

????????????????AL_EXPONENT_DISTANCE//指數(shù)距離

????????????????AL_EXPONENT_DISTANCE_CLAMPED

????????????????AL_NONE

????????????????//這兩個(gè)參數(shù)是計(jì)算距離中用的,公式參考原版文檔,總之越近增益越大

????????????????AL_REFERENCE_DISTANCE//參考距離

????????????????AL_ROLLOFF_FACTOR //衰減因子

?

5.?錯(cuò)誤函數(shù)

ALenum alGetError(ALvoid);

?

6.?extension函數(shù)

ALbooleanalIsExtensionPresent (const ALchar *extname); //extension有效時(shí)返回AL_TRUE

void * alGetProcAddress(const ALchar *fname); //返回指定的函數(shù)指針或者NULL

ALenum alGetEnumValue(const ALchar *ename); //返回ename描述的ALenum或者NULL

?

7.?context函數(shù)

ALC_FREQUENCY l?輸出頻率

ALC_MONO_SOURCES l?請(qǐng)求的單聲道source數(shù)

ALC_STEREO_SOURCES l?請(qǐng)求的雙聲道source數(shù)

ALC_REFRESH l context運(yùn)行的刷新率

ALC_SYNC i?同步context的標(biāo)志位

ALContext *alcCreateContext (ALCdevice *device, ALCint *attrlist);

????????????????attrlist:上述屬性集的指針,可以是NULL或以0結(jié)尾的列表,列表中每一項(xiàng)是屬性名和屬性值組成的數(shù)對(duì)

ALCbooleanalcMakeContextCurrent (ALCcontext *context);

void alcProcessContext(ALCcontext *context); //通知指定context開始運(yùn)行

void alcSuspendContext(ALCcontext *context); //這兩個(gè)組合使用可以使?fàn)顟B(tài)的改變迅速生效

void alcDestroyContext(ALCcontext *context); //關(guān)閉非當(dāng)前的context

ALCcontext*alcGetCurrentContext (ALCvoid);

ALCdevice*alcGetContextDevice (ALCcontext *context);

?

?

8.?context錯(cuò)誤函數(shù)

ALCenum alcGetError(ALCdevice *device);

?

9.?contextdevice函數(shù)

ALCdevice*alcOpenDevice (const ALCchar *devicename);

ALCbooleanalcCloseDevice (ALCdevice *device);

?

10.?contextextension函數(shù)

ALCbooleanalcIsExtensionPresent (ALCdevice *device, const ALCchar *extName);

void* alcGetProcAddress(ALCdevice *device, const ALCchar *funcName);

ALCenum alcGetEnumValue(ALCdevice *device, const ALCchar *enumName);

?

11.?context狀態(tài)函數(shù)

const ALCchar *alcGetString (ALCdevice *device, ALenum param);

????????????????屬性:?ALC_DEFAULT_DEVICE_SPECIFIER

????????????????????????ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER

????????????????????????ALC_DEVICE_SPECIFIER

????????????????????????ALC_CAPTURE_DEVICE_SPECIFIER

????????????????????????ALC_EXTENSIONS

void alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data);

????????????????param: ALC_MAJOR_VERSION,ALC_MINOR_VERSION,

????????????????????????ALC_ATTRIBUTES_SIZE,ALC_ALL_ATTRIBUTES

????????????????size:?傳入的目標(biāo)buffer的大小

?

12.?context?捕捉函數(shù)

ALCdevice*alcCaptureOpenDevice (const ALCchar *devicename, ALCuint frequency, ALCenum format,ALCsizei buffersize);

???????? ???????? frequency:?捕捉的頻率

ALCbooleanalcCaptureCloseDevice (ALCdevice *device);

void alcCaptureStart(ALCdevice *device); //啟動(dòng)捕捉,數(shù)據(jù)存入一個(gè)內(nèi)部環(huán)形bufferbuffer大小是opendevice時(shí)候傳入。通過alcGetIntegervALC_CAPTURE_SAMPLES可以獲得當(dāng)前有效采樣數(shù),然后可用alcCaptureSamples獲得已經(jīng)采樣的樣本。

void alcCaptureStop(ALCdevice *device);

void alcCaptureSamples(ALCdevice *device, ALCvoid *buffer, ALCsizei samples);

轉(zhuǎn)載于:https://www.cnblogs.com/dragon2012/p/3229048.html

總結(jié)

以上是生活随笔為你收集整理的openal 基础知识4的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 无码人妻丰满熟妇啪啪 | 天堂av2019| 日韩一区二区免费在线观看 | 欧美日韩国产精品一区二区 | 久久人人爽人人爽 | 韩国bj大尺度vip福利网站 | 免费看亚洲 | 欧美大色| 美美女高清毛片视频免费观看 | 久久艹av | 日韩视频a | 夜夜爽夜夜操 | www.爱爱| 一区在线免费 | 韩国av一区二区三区 | 日本色妞 | 尤物av无码色av无码 | 免费观看一区二区 | 久久香视频 | 国产网站久久 | 国产哺乳奶水91在线播放 | 亚洲色图狠狠干 | 国产日韩欧美一区二区 | 性生活视频软件 | 欧美日韩在线播放视频 | 亚洲av无码专区在线播放中文 | www国产无套内射com | 亚洲va欧美va天堂v国产综合 | 天天摸天天干天天操 | 99热免费在线 | 番号动态图 | 亚洲国产毛片 | 欧美在线视频一区 | 国产精品久久久午夜夜伦鲁鲁 | 香蕉茄子视频 | 国产啪视频| 色偷偷在线观看 | a∨鲁丝一区鲁丝二区鲁丝三区 | 国产又爽又黄的激情精品视频 | 男女激情在线观看 | jizz日本少妇| 毛茸茸日本熟妇高潮 | 红桃视频成人在线 | 第一页在线视频 | 手机av免费 | 国产又粗又硬又黄的视频 | 日韩手机在线视频 | 亚洲国产精品网站 | 免费的毛片 | 伊人成人久久 | 久久久无码精品亚洲国产 | 深夜免费视频 | 日韩aⅴ视频 | 极品美女av | 久久五月天婷婷 | 高清二区 | 桃谷绘里香番号 | 情侣作爱视频网站 | 日本一区二区在线播放 | 99中文字幕在线观看 | 精品国产一区二区三区在线 | 男人的天堂成人 | 风间由美av在线 | 五月在线 | 亚洲欧美校园春色 | 国产麻豆精品在线 | 黄视频在线播放 | 日韩av资源站 | 啪啪.com| 97精品免费视频 | 欧美女同在线 | 成年人三级网站 | 日日躁夜夜躁 | 色优久久| 在线视频a | 国产偷自拍视频 | 岛国av免费在线 | 国产成人免费在线视频 | 狠狠干导航 | 国内偷拍一区二区 | 欧美激情精品久久 | 制服诱惑一区二区三区 | 国产www免费观看 | 综合色久 | 自拍偷拍五月天 | 91av欧美| 国产成人亚洲一区二区 | 香蕉视频国产在线观看 | 亚洲熟女乱色综合亚洲小说 | 天天艹天天 | 99国产精品久久久久久久久久久 | 久久久久久国产精品视频 | 国产精品1| 激情五月色综合国产精品 | 久久久精品人妻一区二区三区色秀 | 欧美成人区 | 国产精品一区二区免费视频 | 干欧美| 欧美人与禽猛交乱配视频 |