前言
从来没想到自己能出一本书。
写书是一件很考验人耐心的事情,从打算写一本书开始,我心里每时每刻都像有一块大石头压着一样。一要保证专业性,二要保证质量,同时还要考虑怎么表达才能让别人明白自己的意思,所以写书并没有那么简单。
近年来,直播、短视频行业的相关业务发展迅猛,很多人希望学习其中涉及的Android音视频开发相关知识,而Android音视频开发的难度相对较高,这让很多Android开发者望而却步。例如,音视频开发中很多有特色的或者核心的模块使用NDK开发,而NDK开发又主要使用C/C++语言编写代码,这对于使用Java语言的Android开发者来说有门槛。
我为什么要写这本书呢?对于音视频相关技术,网络上遍布零散的知识点,但没有一个成型的知识体系。很多朋友想学习和了解Android音视频开发,却不知道如何下手,所以我希望将自己的知识和经验整理成书,帮助读者系统学习、化繁为简,让大家在Android音视频开发的道路上不断进步。
本书概要
第1章:介绍了音视频基础知识,通过本章学习可以了解一些音视频的基础概念,让读者更好地系统掌握音视频相关知识。
第2章:介绍了Android应用层使用的系统播放器MediaPlayer。
第3章:介绍了Android多媒体管理调度的服务者MediaPlayerService,以及如何为多媒体播放提供服务。
第4章:介绍了Android系统中的StagefrightPlayer。在Android系统5.1版本之前,其扮演了重要的角色。
第5章:介绍了Android系统中的NuPlayer,其是流媒体播放的新生力量。在Android系统5.1版本之后(包含5.1版本),NuPlayer基于StagefrightPlayer的基础类进行构建,利用了更底层的ALooper/AHandler机制来异步解码播放。
第6章:介绍了OpenMAX(OMX)框架相关内容。OpenMAX是一个多媒体应用程序的标准,涉及OpenMAX IL API在Android应用程序、多媒体框架和编/解码库及其支持的组件(比如sources和sinks)之间建立统一的接口。
第7章:介绍了FFmpeg库在Windows、Mac OS及Linux下编译并移植的内容,同时介绍了FFmpeg常用的处理音视频的命令。
第8章:介绍了FFmpeg源码分析及实战开发案例。
第9章:介绍了直播技术,主要涉及直播原理、采集数据、编码、推流、播放等。同时提供了一个直播推流完整案例,可以实现一个简单的直播App。本章还介绍了直播过程中的优化方法,可帮助提升直播体验。
第10章:介绍了H.264码流结构及H.265码流结构。在音视频开发中,可以通过分析数据有无特殊性问题及异常问题来进行排查,帮助定位、修复问题。
第11章:介绍了常见的视频封装格式,以及对封装格式的原理和内部结构进行了分析。
读者对象
本书适合具有一定Android开发基础并且对音视频技术方向感兴趣的读者阅读,包括:
• 从事Android多媒体开发工作的人。
• 从事音视频开发工作的人。
• 从事跨平台Android播放器开发工作的人。
• 从Android开发想进阶至多媒体、音视频、直播领域的人。
• 从事Android ROM开发中维护多媒体播放框架工作的人。
• 对Android音视频、播放器、直播技术感兴趣的其他相关人士。
勘误和支持
由于作者的水平有限,书中难免会出现一些错误或者不准确的地方,恳请广大读者批评指正。
另外,我在自己的微信公众号“何俊林”中特意添加了一个新的菜单入口,专门用于展示书中的问题,欢迎读者查看。
如果在阅读本书的过程中,读者有任何疑问或希望和我交流,可以在公众号后台留言或者发邮件到hejunlin2013@gmail.com,我会一一回复。
致谢
首先要感谢我的家人,谢谢你们在写书期间默默支持着我,还要感谢电子工业出版社博文视点公司付睿老师的耐心校稿,以及感谢同行朋友与我就细节问题进行讨论和对本书的审校。没有你们,就没有本书的诞生,谢谢你们所有人。
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
• 提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
• 交流互动:在页面下方读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/34996