- 浏览: 222840 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
15197442045:
求demo,谢谢
IOS 后台执行代码(voip socket) -
15197442045:
我用了你这种方式,还是不能后台运行~~~~~
IOS 后台执行代码(voip socket) -
wlpych:
这个m_socket,从哪获得啊,什么方法?用的pjsip。求 ...
IOS 后台执行代码(voip socket)
Phone OS 音频分类:
?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 本身不支持循环播放的问题。以下代码可以实现一个在程序中循环播放的背景音乐:
AVAudioPlayer 是 AVFoundation.framework 中定义的一个类,所以使用要先在工程中引入 AVFoundation.framework。我们可以把 AVAudioPlayer 看作是一个高级的播放器,它支持广泛的音频格式,主要是以下这些格式:
■ AAC
■ AMR(AdaptiveMulti-Rate, aformatforspeech)
■ ALAC(AppleLossless)
■ iLBC(internetLowBitrateCodec, anotherformatforspeech)
■ IMA4(IMA/ADPCM)
■ linearPCM(uncompressed)
■ ?-lawanda-law
■ MP3(MPEG-1audiolayer3
AVAudioPlayer 可以播放任意长度的音频文件、支持循环播放、可以同步播放多个音频文件、控制播放进度以及从音频文件的任意一点开始播放等,更高级的功能可以参考 AVAudioPlayer 的文档。要使用 AVAudioPlayer 的对象播放文件,你只需为其指定一个音频文件并设定一个实现了 AVAudioPlayerDelegate 协议的 delegate 对象。这里举一个简单的例子,和上一个例子一样,实现一直循环播放的背景音乐:
3. Audio Queue Services
如果以上两种音频播放的解决方案都无法满足你的需求,那么我想你肯定需要使用 Audio Queue Services。使用 Audio Queue Services 对音频进行播放,你可以完全实现对声音的控制。例如,你可以在声音数据从文件读到内存缓冲区后对声音进行一定处理再进行播放,从而实现对音频的快速/慢速播放的功能。因为 Audio Queue Services 相对复杂很多,Apple 官方已经把它整理为一本书了,具体可以参考 Audio Queue Services Programming Guide 和 SpeakHere 的程序示例。
4. OpenAL
OpenAL 是一套跨平台的开源的音频处理接口,与图形处理的 OpenGL 类似,它为音频播放提供了一套更加优化的方案。它最适合开发游戏的音效,用法也与其他平台下相同。iPhone 支持 OpenAL 1.1,具体的文档可以参考 OpenAL 的网站 http://openal.org 和 oalTouch 的程序示例
发表评论
-
UIWebView清空缓存
2016-07-25 10:03 508- (void)clearAllUIWebViewData { ... -
iOS显示FPS值的工具FHHFPSIndicator
2016-07-04 13:56 0转载:http://www.cocoachina.com/io ... -
响应者链及相关机制总结
2016-06-30 14:25 508转载:http://www.cocoachina.com/i ... -
KVO&KVC的再次认知
2015-02-02 16:01 702KVO模型中,有两种通知观察者的方式,自动通知和手动通知。顾名 ... -
代码重构的理解(持续更新)
2015-01-13 17:27 583代码重构的理解和思考。 1:何时进行重构?当重复出现的时候,你 ... -
深入浅出Cocoa之Framework(转)
2015-01-06 17:49 0Framework 简介 转自 http://www.coc ... -
iOS静态库和动态库
2014-12-24 17:55 804一、什么是库? 库是共 ... -
svg图片在ios上的使用
2014-12-23 15:22 7271:从UI设计师那里得到的是每个svg图通过网站icomoon ... -
svg图片在ios上的使用
2014-12-23 15:22 32521:从UI设计师那里得到的是每个svg图通过网站icomoon ... -
Xcode设置项之Architectures和Valid Architectures
2014-12-22 10:42 622本文所讲的内容都是围绕iPhone的CPU指令集,现在先说说不 ... -
Xcode中Build Settings更改编译后能发现的问题
2014-12-17 13:36 7381:for循环不加括号 2:枚举赋值时类型不匹配 3:for循 ... -
静态库编译心得
2014-12-16 11:16 520我们编译静态库时一般会生成模拟器,真机两个包的.a文件 这二个 ... -
xcode编译选项整理
2014-12-11 19:15 0LINK_WITH_STANDARD_LIBRARIES = ... -
根据dsym解析crash_log
2014-12-01 14:15 9251:拷贝symbolicatecrash到/bin目录下 su ... -
autolayout心得
2014-10-28 13:30 684一:实现方案在以前就已经确定了下面几个点: 1 使 ... -
Objective-C的消息传递机制[转]
2014-07-31 20:34 667一直想写一篇类似的。 直接转载了 http://www.cnb ... -
iOS开发模拟限速
2012-12-07 17:47 53881. 模拟器网速调整: 限制时输入下面两行,根据需要修改下面的 ... -
iphone中结束电话后返回自己的应用(转载)
2012-04-10 10:30 1198iphone中结束电话后返回自己的应用 大家想不想在 ... -
Info.plist中常用的key简介(转载)
2012-03-15 15:55 939UIRequiresPersistentWiFi 在程序中弹出 ... -
UIScrollView 原理(转载)
2012-03-10 19:46 1162scroll view 原理 在滚动过程当中,其实是在修 ...
相关推荐
AVFoundation框架提供了音频播放和处理的功能,开发者需要了解如何导入、播放和控制游戏中的音效。 在iOS应用的生命周期管理和内存管理方面,本书也会进行讲解。例如,如何在用户离开游戏时正确保存进度,以及如何...
### iPhone应用开发从入门到精通 #### 一、基础知识篇 **1.1 iOS系统概述** iOS是由苹果公司开发的移动操作系统,专为iPhone、iPad和iPod touch等设备设计。自2007年发布以来,iOS已经成为全球最受欢迎的移动操作...
iPhone应用开发从入门到精通作者:杨帆 郑青青 王凤筱 编著前 言入 门 篇第1章 iPhone OS介绍 21.1 iPhone OS预览21.1.1 iPhone OS的发展历史21.1.2 iPhone OS的外观31.1.3 多任务特性31.1.4 不支持的技术...
《iPhone游戏开发实践指南》是一本面向初学者和中级开发者的技术书籍,旨在通过实例和详细的指导,帮助读者掌握iOS平台上游戏开发的核心技能。配套源代码是本书教学内容的重要组成部分,它包含了书中各个章节实例的...
Maher Ali博士,资深移动开发者和贝尔实验室科学家,拥有丰富的移动应用开发经验。作为本书的作者,他不仅具备深厚的理论基础,还具有实践经验,能够为读者提供详尽的技术指导。 #### 三、主要内容 本书的核心内容是...
《iPhone开发实战》这本书是为想要踏入iOS应用开发领域的初学者和有志于提升技能的开发者精心准备的一份宝贵资源。iOS开发,尤其是针对iPhone的应用程序设计,是苹果生态系统中的重要组成部分,它涉及到Apple的iOS...
在实际的应用开发中,开发者通常使用Xcode作为开发环境。Xcode提供了一个集成开发环境(IDE),包括代码编辑器、调试器和性能分析工具。它还集成了Interface Builder,这是一个图形化的用户界面构建工具,可以方便地...
- **音频处理**:学习如何播放和录制音频文件,以及如何使用AVFoundation框架进行音频处理。 - **视频处理**:了解如何播放和编辑视频内容。 - **图形绘制**:使用Core Graphics库进行复杂的图形绘制操作。 - **图像...
本书不仅涵盖了基础的iPhone开发知识,还深入探讨了诸多高级技巧和特殊效果,是学习和提升iPhone应用开发技能的宝贵资源。 ### 重要知识点概览 #### 1. 全面的技术覆盖 本书通过丰富的代码示例和清晰的解释,全面...
很抱歉,但根据提供的信息,标题、描述和标签均指向"自己手机的Iphone IOS系统开发源码",而压缩包子文件的文件名称列表却显示的是Android应用开发的相关文件,而不是iOS系统的源码。Android应用的主要组成部分包括...
Cocoa是Apple为Mac OS X和iOS平台提供的一套强大的应用开发框架。对于iPhone开发来说,掌握Cocoa是必不可少的基础之一。本章节将从Cocoa的定义出发,深入探讨其在iPhone开发中的地位与作用。 - **Cocoa定义**:...
不仅可以用于开发iPhone应用,还可以用于开发Mac OS的应用程序。 2. **Interface Builder**:是Xcode的一部分,主要用于构建用户界面(UI)。通过拖放控件并配置属性,开发者可以轻松地创建出美观且功能丰富的用户界面...
在iOS平台上进行应用程序...通过掌握以上知识点,开发者可以高效地进行iPhone应用的开发,无论是简单的UI应用还是复杂的3D游戏,都能游刃有余。在实践中不断学习和探索,可以提升开发技能,适应不断变化的iOS生态系统。