0%

1.配置音频会话

1.1处理”铃声/静音”开关切换

测试上一节使用AVAudioPlayer播放音频的程序,当开始播放音频时切换设备侧面的”铃声/静音”开关,会发现音频输出也会在这两种状态下切换.为了让我们的程序在这两种状态下都能正常输出音乐,需要在程序启动时对音频会话进行明确的配置.在)application: didFinishLaunchingWithOptions:中加入如下代码即可:

 AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
[session setActive:YES error:nil];
阅读全文 »

在上一篇MVC:登录示例中提到了一点,在一个Controller管理多个复杂View的场景时,C和V之间的事件以及参数传递会变得很不顺畅,而实际开发中我们也没有为每个继承自View创建对应Controller的开发习惯.

阅读全文 »

关于MVC的争论

关于MVC的争论已经有很多,对此我的观点是:对于iOS开发中的绝大部分场景来说,MVC本身是没有问题的,你认为的MVC的问题,一定是你自己理解的问题(资深架构师请自动忽略本文).

行文过程中查阅了互联网上的大量文档,其中水平良莠不齐(最常见的就是MVC改个名就当MVVM的),当然也有许多非常有价值的参考资料,在文末会逐一列举,以供参考.

阅读全文 »

AVAudioPlayer类提供了十分简单的接口用来从文件或内存中播放音频.但是,AVAudioPlayer不支持播放远程网络音频.

阅读全文 »

音频会话简介

无论是否使用音频功能,所有的iOS应用都会有一个音频会话(Audio Session).默认的音频会话会有以下一些预配置:

  • 支持音频播放,但不支持音频录制
  • 当设备切换到静音模式时,应用的音频也会处于静音状态
  • 当设备锁定时,应用音频会处于静音状态
  • 当应用播放音频时,其他所有后台程序的音频都会处于静音状态
阅读全文 »

AV Foundation中提供了一个AVSpeechSynthesizer类来向app中添加朗诵文本的功能.
这个类用来播放一个或者多个语音内容,每条语音内容都是一个AVSpeechUtterance对象.
(快速记忆:一个语音合成器(SpeechSynthesizer)播放需要一段语音内容(SpeechUtterance))

阅读全文 »

AV Foundation其设计过程高度依赖多线程机制.充分利用了多核硬件的优势并大量使用block和GCD机制将复杂的计算进程放在后台线程运行.会自动提供硬件加速.此外,从一开始该框架就是针对64位处理器设计的,能充分发挥64位处理器的优势.

阅读全文 »

  • 1.Model是有具备事务处理能力的,并不只是一个DTO,严格的说由Model决定一个APP的功能(Model和Object(bean)的区别)
  • 2.viewController和controller不是同一个层级的概念

| 层级 |
| —–|
| view |
| viewController |
| Controller |
| Model |
| Server |
| Manager |
| Helper |