WEB开发网
开发学院手机开发iPhone 开发 iPhone 应用开发:音频播放 阅读

iPhone 应用开发:音频播放

 2010-08-29 01:51:00 来源:WEB开发网   
核心提示:iPhone 应用开发:音频播放在 iPhone 应用或者是游戏的开发过程中,对声音的支持是必不可少的,iPhone 应用开发:音频播放,没有音效的软件是残缺的,用户体验也会大打折扣,从文档中我们发现 可以通过 AudioServicesAddSystemSoundCompletion 方法为音频播放添加 CallBa

iPhone 应用开发:音频播放

在 iPhone 应用或者是游戏的开发过程中,对声音的支持是必不可少的。没有音效的软件是残缺的,用户体验也会大打折扣,下面是自己对iPhone音频的一点总结。

iPhone OS 音频分类:

(1)High level, easy to use

•System Sound API - short sounds

•AVAudioPlayer class - ObjC, simple API

(2)Lower level, takes more effort but much more control

•Audio Toolbox - recording and playback, streaming, full control

•Audio Units - processing audio

•OpenAL

Sound effects音响效果:

•Button Clicks

•Alert Sounds

•Short Sounds Accompanying User Actions

iPhone OS 主要提供以下了几种播放音频的方法:

•System Sound Services

•AVAudioPlayer 类

•Audio Queue Services

•OpenAL

1. System Sound Services

System Sound Services 是最底层也是最简单的声音播放服务,调用 AudioServicesPlaySystemSound 这个方法就可以播放一些简单的音频文件,使用此方法只适合播放一些很小的提示或者警告音,因为它有很多限制:

■ 声音长度要小于 5 秒(一说小于30秒)

■ In linear PCM 或者 IMA4 (IMA/ADPCM) 格式的

■ 打包成 .caf, .aif, 或者 .wav 的文件

■ 不能控制播放的进度

■ 调用方法后立即播放声音

■ 没有循环播放和立体声控制

另外,它还可以调用系统的震动功能,方法也很简单。具体的代码可以参考官方的示例SysSound,但是官方的示例只有一些简单的用法,从文档中我们发现 可以通过 AudioServicesAddSystemSoundCompletion 方法为音频播放添加 CallBack 函数,有了 CallBack 函数我们可以解决不少问题,比如可以克服 System Sound Services 本身不支持循环播放的问题。以下代码可以实现一个在程序中循环播放的背景音乐:

view sourceprint? 011. static void completionCallback (SystemSoundID mySSID) {

02 2. // 音频重放

03 3. AudioServicesPlaySystemSound(mySSID);

1 2 3 4  下一页

Tags:iPhone 应用开发 音频

编辑录入:coldstar [复制链接] [打 印]
赞助商链接