b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

void函数如何调用_fgetc函数_fscanf函数的正确调用形式(2)

电脑杂谈  发布时间:2017-01-23 20:07:29  来源:网络整理

ALuintsource;

ALuintbuffer;

ALCcontext*context;

ALCdevice*device;

Source存放原始数据的内容,buffer存放数据缓存内容。Context描述了上下文信息,device获取设备的id号。

通过alGenBuffers函数(c语言中)可以调用open al中用到的相关参数

AL_FREQUENCY:表示缓冲器的频率参数,单位是赫兹。

AL_BITS:表示缓冲器的量化位数。

AL_CHANIVELS:表示缓冲器的音频通道个数,可以为1或者2。

AL_SIZE:表示缓冲器的大小。单位是字节。

AL_DATA:表示缓冲器的数据地址。描述了数据源的起始位置。

设置alGenSource可以调用很多声源参数:

AL_POSITION:设置声源的X、Y、Z三个方向上的坐标。

AL_MIN_GAIN:设置声源的最小增益。

AL_VELOCITY:设置声源的速度失量。

……

void函数如何调用_fgetc函数_fscanf函数的正确调用形式

当然还有很多其他的速度失量信息,这里由于篇幅关系就不一一介绍。

Open al虽然是第三方提供的音频处理库,但在ios中已经通过openal framework添加进来。当然在使用open al中相应函数的时候需要将open al的相应文件添加到工程中。

3.3源程序分析

首先先来看一段利用openal播放本地音频文件的源程序:

1 device =

alcOpenDevice(NULL);

2 context =

alcCreateContext(device,

0);

3 alcMakeContextCurrent(context);

4 alGenBuffers(1, &buffer);

5 alGenSources(1, &source);

6 ALenum source_format;

7ALsizei source_size;

8ALsizei source_freq;

9 NSString *ply_music = [[NSBundlemainBundle]

pathForResource:@"music"

ofType:@"wav"];

10 NSURL *musicURL = [NSURLfileURLWithPath:ply_music];

11 CFURLRef music_URL = (__bridgeCFURLRef)musicURL;

12 source_data =MyGetOpenALAudioData(music_URL, &source_size,&source_format, &source_freq);

13 alBufferDataStaticProc(buffer, source_format,source_data, source_size, source_freq);

14 alSourcei(source,AL_BUFFER,

buffer);

// alSourcefv

根据所要产生的音频3D效果设置声源位置。。。。。

15 alSourcePlay(source);

该段源代码位于ViewController.m文件ply_music方法中。在原工程的基础上注释掉利用Foundation.framework框架播放音频文件的代码。将此段代码添加进来。就可以实现对本地音频文件的播放。

程序第一行通过alcOpenDevice打开所需要播放的音频文件设备。如果打开正确则返回音频设备的id号device。第二行建立播放音频文件的上下文运行环境。将音频设备的id号作为参数输入。第三行匹配音频设备播放音频文件的上下文环境。运行此语句会有以下参数输出:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28346-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...