- 博客(12)
- 收藏
- 关注
转载 深入了解GCD:Part 2/2
欢迎来到深入了解GCD第二部分教程!在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD 如何工作的知识。通过在初始化时利用 dispatch_once,你创建了一个线程安全的 PhotoManager 单例,而且你通过使用 dispatch_barrier_async 和 dispatch_sync 的组合使得对 Photos 数组的读取和写入都变得线程安全了。除
2015-03-10 16:33:23 290
转载 深入了解GCD:Part 1/2
虽然 Grand Central Dispatch (简称GCD)这项技术已经出现很久,但并不是每个人都能很好的运用它并得到甜头。这个是也是能理解的;因为应用程序的并发处理是一件很棘手的事情,而且GCD的API是基于C语言编写的,它并不像Objective-C语言那样更容易理解。深入学习Grand Central Dispatch 分为两篇教程来学习。在这个两篇教程中,第一个教程解
2015-03-10 16:30:33 409
转载 NSFileManager处理目录的一些方法
下面总结了NSFileManager处理目录的一些方法,大多数方法和用于普通文件的方法相同,如下所示:下面是代码示例。出于获得信息的目的,首先获得当前的目录路径,然后,在当前的目录中创建一个名为testdir的新目录(文件夹)。然后使用movePath:toPath:handler:方法将新目录testdir重命名为newdir。另外,这个方法还可以用来将整个目录结构(这就意味
2015-03-09 11:14:18 375
转载 iOS NSFileHandle 基本用法介绍
NSFileHandle 此类主要是对文件内容进行读取和写入操作NSFileMange 此类主要是对文件进行的操作以及文件信息的获取常用处理方法+ (id)fileHandleForReadingAtPath:(NSString *)path 打开一个文件准备读取 + (id)fileHandleForWritingAtPath:(NSString
2015-03-09 10:48:53 254
转载 iOS音频播放 (八):NowPlayingCenter和RemoteControl
在之前一到六篇中我对iOS下的音频播放流程进行了阐述,在第七篇中介绍了如何播放iPod Lib中的歌曲,至此有关音频播放的话题就已经完结了,在这篇里我将会讲到的NowPlayingCenter和RemoteControl这两个玩意本身和整个播放流程并没有什么关系,但它们可以让音频播放在iOS系统上获得更加好的用户体验。NowPlayingCenterNowPlayingCe
2015-03-06 15:33:18 489
转载 iOS音频播放 (七):播放iPod Library中的歌曲
现在市面上的音乐播放器都支持iPod Library歌曲(俗称iPod音乐或者本地音乐)的播放,用户对于iPod音乐播放的需求也一直十分强烈。这篇要讲的是如何来播放iPod Library的歌曲。概述根据官方文档描述Apple从iOS 3.0开始允许开发者访问用户的iPod library来获取用户放在其中的歌曲等多媒体内容。为此Apple提供了多种方法来访问和播放
2015-03-06 15:32:02 423
转载 iOS音频播放 (六):简单的音频播放器实现
在前几篇中我分别讲到了AudioSession、AudioFileStream、AudioFile、AudioQueue,这些类的功能已经涵盖了第一篇中所提到的音频播放所需要的步骤:读取MP3文件 NSFileHandle解析采样率、码率、时长等信息,分离MP3中的音频帧 AudioFileStream/AudioFile对分离出来的音频帧解码得到PCM数据 AudioQueue对PCM数
2015-03-06 15:29:21 488
转载 iOS音频播放 (五):AudioQueue
在第三篇和第四篇中介绍了如何用AudioStreamFile和AudioFile解析音频数据格式、分离音频帧。下一步终于可以使用分离出来的音频帧进行播放了,本片中将来讲一讲如何使用AudioQueue播放音频数据。AudioQueue介绍AudioQueue是AudioToolBox.framework中的一员,在官方文档中Apple这样描述AudioQueue的:Au
2015-03-06 15:28:52 525
转载 iOS音频播放 (四):AudioFile
接着第三篇的AudioStreamFile这一篇要来聊一下AudioFile。和AudioStreamFile一样AudioFile是AudioToolBox framework中的一员,它也能够完成第一篇所述的第2步,读取音频格式信息和进行帧分离,但事实上它的功能远不止如此。AudioFile介绍按照官方文档的描述:a C programming interface
2015-03-06 15:26:27 334
转载 iOS音频播放 (三):AudioFileStream
在本篇那种将会提到计算音频时长duration和音频seek的方法,这些方法对于CBR编码形式的音频文件可以做到比较精确而对于VBR编码形式的会存在较大的误差(关于CBR和VBR,请看本系列的第一篇),具体讲到duration和seek时会再进行说明。AudioFileStream介绍在第一篇中说到AudioFileStreamer时提到它的作用是用来读取采样率、码率、时长等基
2015-03-06 15:25:02 421
转载 iOS音频播放 (二):AudioSession
AudioSession简介AudioSession这个玩意的主要功能包括以下几点(图片来自官方文档):确定你的app如何使用音频(是播放?还是录音?)为你的app选择合适的输入输出设备(比如输入用的麦克风,输出是耳机、手机功放或者airplay)协调你的app的音频播放和系统以及其他app行为(例如有电话时需要打断,电话结束时需要恢复,按下静音按钮时是否歌曲也要静音等)A
2015-03-06 15:23:00 693
转载 iOS音频播放 (一):概述
基础先来简单了解一下一些基础的音频知识。目前我们在计算机上进行音频播放都需要依赖于音频文件,音频文件的生成过程是将声音信息采样、量化和编码产生的数字信号的过程,人耳所能听到的声音,最低的频率是从20Hz起一直到最高频率20KHZ,因此音频文件格式的最大带宽是20KHZ。根据奈奎斯特的理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音,所以音频
2015-03-06 15:20:13 406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人