摘要:
本篇主要讲音频的后台播放和在线播放。 后台播放 "上一篇" 写的工程运行之后程序退至后台,发现运行不了,歌停止了,这显然不行,音乐后台播放是标配啊。今天就来讲一下后台播放。 1.在plist文件里,告诉系统这是一款音乐软件。 2.代码里设置。这个方法最好在 方法里调用,在别地调用也可以。 3.其实完 阅读全文
摘要:
现在直播越来越火,俨然已经成为了下一个红海。作为一个资深码农(我只喜欢这样称呼自己,不喜欢别人这样称呼我),我必须赶上时代的潮流,开始研究视频直播。发现视屏直播类的文章上来就讲拉流、推流、采集、美颜等第三方类的使用,我是小白很不懂啊。所以我决定开始系统分享从音频、视频类到视频 阅读全文
摘要:
本文主要讲如何自定义NSOperation,以及自定义NSOperation的一些注意事项,以下载图片为例。 新建一个类,继承于NSOperation。 CustomOperation.h 代码 CustomOperation.m 分析 :1.自定义NSOperation都要 阅读全文
摘要:
本文主要对NSOPeration的一些重点属性和方法做出介绍,以便大家可以更好的使用NSOPeration。 1.添加依赖 需求:同时下载两张图片,两张图片都下载完了,在合成成一张。这个例子我在 "iOS多线程之6.GCD的其他用法" 这篇文章中用过,当时是用GCD的grou 阅读全文
摘要:
NSOperation和GCD一样,不用我们管理线程的生命周期,加锁等问题,只要把操作封装进NSOperation中,系统会自动帮我们创建线程,执行操作。而且他是面向对象的,我们看起来更容易理解,使用起来也更灵活。GCD提供的API都是C语言的,看起来确实有点头痛。 NSOperation是一个抽象 阅读全文
摘要:
队列组 让队列里的任务同时执行,当任务都执行完毕时,再以通知的形式告诉程序员。举例,同时下载两张图片,两张图片都下载完了,在合成成一张。 代码: 日志 效果: 如果不用队列组,下载第一张图片、下载第二张图片、合并两张图片,就只能当做一个任务放入队列中,不能同时下载两张图片,耗时几乎多了一倍。因为,如 阅读全文
摘要:
上一篇文章我对GCD的几个基本概念做了介绍,但是大家看完了可能觉得对理解GCD并没有什么卵用。其实会用GCD其实很简单,只要记住两条就可以了。 1. 主队列里的任务必须在异步函数中执行。 主队列里的任务如果在同步函数中执行,就会造成死锁。什么是死锁?容我举例来说明。 代码 日 阅读全文
摘要:
GCD(Grand Central Dispatch)应该是我们开发中最常用到的多线程解决方案,是苹果公司专门为多核的并行运算提出的解决方案,是基于C语言的,提供了很多非常强大的函数。 GCD的优势 1.会自动利用更多的CPU内核(从iPhone4s开始是双核,iPhone7系列是4核)。 2.会自 阅读全文
摘要:
我们把一些耗时操作放在子线程,例如下载图片,但是下载完毕我们不能在子线程更新UI,因为只有主线程才可以更新UI和处理用户的触摸事件,否则程序会崩溃。此时,我们就需要把子线程下载完毕的数据传递到主线程,让主线程更新UI,这就是线程间的通信。 原理 代码 日志 &em 阅读全文
摘要:
我在上一篇文章讲了线程的生命周期,这篇文章来讲讲线程加锁的注意事项与@synchronized关键字。 那什么时候需要加锁呢,就是当多条线程同时操作一个变量时,就需要加锁了。至于为什么要加锁,可以看看文顶顶的这篇文章:http://www.cnblogs.com/wendingding/p/3805 阅读全文