OpenAL快速入门教程
来源:互联网 发布:c 常量数组初始化 编辑:程序博客网 时间:2024/06/02 11:54
转发,原文地址:OpenAL快速入门教程
OpenAL快速入门
1. 为什么使用OpenAL
也许你已经用过AudioToolbox框架并用以下代码来播放一个音乐文件: 这种播放方式很简单,但它每次都需要把音乐文件加载到缓存中,降低了播放的效率。当你需要实时播放的时候,它往往出现延时。而使用OpenAL将最大限度的减少这种延时,提供最佳播放效率。
2. 声音格式转换
为了节省iPhone在播放音乐时进行音频格式转换的时间,你可以手动对文件进行格式转换。
打开终端,输入以下命令: 上述命令利用afconverter工具将inputSoundFile.aiff转换成了outputSoundFile.caf,采样频率为4.41k。
3. 这是一个快速的入门教程,将教你使用OpenAL播放音乐的最少步骤。
OpenAL主要由3个实体构成:听众Listener, 声源Source, 以及缓存Buffer。
听众Listener:就是你。Listener的位置是可以移动的。
声源Source:类似一个话筒。它发出声音给听众听。和Listener一样,声源的位置也是可以移动的。例如oalTouch中实现了声音远近的控制(近响远轻),就是通过Listener和Source两张图片之间的距离实现的。
缓存Buffer:存着原始声音数据,就是你需要播放的声音。
还有2个重要的对象:设备device和环境context。
设备是播放声音的硬件。
环境是声源和听众所在的空间。
让OpenAL工作所需的最少步骤是: 以下是相关代码: 上述代码初始化了设备device和环境context。
接下去要打开声音文件。 上述代码打开了一个叫neatoEffect.caf的声音文件,并且得到了它的ID。
openAudioFile方法的实现在哪里? 这个方法中调用AudioFileOpenURL得到了一个AudioFileID outAFID。
接下去做什么?把声音数据读出来。
为了读取声音数据,先要知道数据的大小。
可以调用这个方法: audioFileSize它的实现文件是: 得到了声音数据的大小,我们可以把数据复制到缓存buffer里了: 这段有点长,其实还好啦。首先我们为声音数据创建了一个空间outData,然后用AudioFileReadBytes将声音数据读到了这个空间里。接下去,把空间里的数据复制到了缓存buffer里。44100表示音频的采样频率4.41k,STEREO16表示16位立体声格式。
复制完数据,别忘了清空这个outData空间: 最后我们可以将buffer和声源source绑定了。 差不多完成了,我们播放声源吧: 要停下怎么办? 最后,退出前别忘了把所有东西都释放: 原文网址:
http://benbritten.com/2008/11/06/openal-sound-on-the-iphone/
你们还可以看看这个(同一位作者关于AudioSession的文章):
http://benbritten.com/2009/02/02 ... one/comment-page-1/
1. 为什么使用OpenAL
也许你已经用过AudioToolbox框架并用以下代码来播放一个音乐文件: 这种播放方式很简单,但它每次都需要把音乐文件加载到缓存中,降低了播放的效率。当你需要实时播放的时候,它往往出现延时。而使用OpenAL将最大限度的减少这种延时,提供最佳播放效率。
2. 声音格式转换
为了节省iPhone在播放音乐时进行音频格式转换的时间,你可以手动对文件进行格式转换。
打开终端,输入以下命令: 上述命令利用afconverter工具将inputSoundFile.aiff转换成了outputSoundFile.caf,采样频率为4.41k。
3. 这是一个快速的入门教程,将教你使用OpenAL播放音乐的最少步骤。
OpenAL主要由3个实体构成:听众Listener, 声源Source, 以及缓存Buffer。
听众Listener:就是你。Listener的位置是可以移动的。
声源Source:类似一个话筒。它发出声音给听众听。和Listener一样,声源的位置也是可以移动的。例如oalTouch中实现了声音远近的控制(近响远轻),就是通过Listener和Source两张图片之间的距离实现的。
缓存Buffer:存着原始声音数据,就是你需要播放的声音。
还有2个重要的对象:设备device和环境context。
设备是播放声音的硬件。
环境是声源和听众所在的空间。
让OpenAL工作所需的最少步骤是: 以下是相关代码: 上述代码初始化了设备device和环境context。
接下去要打开声音文件。 上述代码打开了一个叫neatoEffect.caf的声音文件,并且得到了它的ID。
openAudioFile方法的实现在哪里? 这个方法中调用AudioFileOpenURL得到了一个AudioFileID outAFID。
接下去做什么?把声音数据读出来。
为了读取声音数据,先要知道数据的大小。
可以调用这个方法: audioFileSize它的实现文件是: 得到了声音数据的大小,我们可以把数据复制到缓存buffer里了: 这段有点长,其实还好啦。首先我们为声音数据创建了一个空间outData,然后用AudioFileReadBytes将声音数据读到了这个空间里。接下去,把空间里的数据复制到了缓存buffer里。44100表示音频的采样频率4.41k,STEREO16表示16位立体声格式。
复制完数据,别忘了清空这个outData空间: 最后我们可以将buffer和声源source绑定了。 差不多完成了,我们播放声源吧: 要停下怎么办? 最后,退出前别忘了把所有东西都释放: 原文网址:
http://benbritten.com/2008/11/06/openal-sound-on-the-iphone/
你们还可以看看这个(同一位作者关于AudioSession的文章):
http://benbritten.com/2009/02/02 ... one/comment-page-1/
- OpenAL快速入门教程
- OpenAL快速入门教程
- openal
- OpenAL
- OpenAL 快速入门(无延迟播放音频)
- Subversion快速入门教程(转)
- Struts快速入门教程
- XML快速入门教程
- Subversion快速入门教程
- Maven2快速入门教程
- Subversion快速入门教程
- Subversion快速入门教程
- Subversion快速入门教程
- 正则表达式快速入门教程
- Subversion快速入门教程
- Subversion快速入门教程
- 单片机快速入门教程
- aspnet快速入门教程问题
- .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径 (在IIS7.5中的配置方法)
- 关于移动短信ISMG和SP的开发源码
- Linux进程间通信(简单的消息队列通信)
- Javascrp中几个常用的字符串验证
- 添加回车提交事件
- OpenAL快速入门教程
- vs2008 三层架构
- SharePoint 2010 suddenly occures: 404 - File or directory not found
- 透明位图的显示
- 移动短信网关SP端
- windows ce 专题
- OpenCV学习笔记(三)——Mat,图像的新容器
- hbase系统架构及数据结构
- C# 获取适配器网络连接IP地址,子网掩码,DNS,数据包等信息