关于CNUO的一点点

CNUO名字的由来?
因为自己曾经的QQ名就是C诺,当初的中二少年,思来想去就把这款App叫做CNUO了。

最初的设计图是通过墨刀设计的,不过写到现在,成型的模样也已经和当初设计的有了很大的区别。虽然这是不成熟的表现,但是自己也通过从想法的产生到付之行动,遇到困难默默解决,一步一步走了下来。这一版前后断断续续写了三个多月,中间一度“忘了”写,好在是坚持了下来。对于大牛来说,可能这个App很简单,但是对于我自己来说,更多的是一种肯定吧,鼓励我在这条路上越走越远。

陆陆续续在这个项目中加入了很多GitHub上优秀的音乐项目的元素,我在这里尽量一一列举出来:
googlesamples-android-architecture
学习了官方的mvp+dagger2的框架搭建
googlesamples-android-UniversalMusicPlayer
从这里学习了MediaSessionCompat,一开始可能不太好理解,通过其他资料的参考,使用起来还是很方便的。
andremion-Music-Player
参考了它的音乐播放界面,本来想使用它的跳转动画的,后面考虑到自己的项目实际,没有使用
harjot-oberai-MusicDNA
最开始的时候,这个项目看地比较多,CNUO中的个性换肤功能来自这里

下面简单的介绍一下CNUO中使用的一些东西:
整体框架使用的是MVP+Dagger2(网络请求的话使用Retrofit,但是目前没有派上用场)
这里写图片描述

整个项目使用统一的Activity和Fragment等Base系列:
这里写图片描述

项目采用总体功能分包形式,结构清晰,便于理解:
这里写图片描述

后面开始了Java和Kotlin混合开发:
这里写图片描述
一开始我还在思考,等写完这个项目,再利用Kotlin写点什么呢。后来我转念一想,为何不直接现在就开始呢?于是
我立马在后面的代码中全部使用了Kotlin开发。有了想法,立马行动总是极好的。并且这个项目之后的功能都会用Kotlin进行开发。

关于MediaSessionCompat怎么使用,这个系列的其他文章已经详细地介绍过了,这里就不再多费口水了。
至于为什么要用MediaSessionCompat,虽然本地音乐播放完全可以不用这一套就可以实现。但是考虑到如果以后需要在线播放音乐,这样改动起来的代价很小很小,原有的代码结构完全不需要改变,只需要在提供数据的方面新增就好了。

播放音乐的核心代码借鉴了android-UniversalMusicPlayer中的一些,虽然用了别人的代码,但是梳理整个过程,并且将其转换为自己能用的东西,还是花了我一定的时间,除了可以看一下我这个系列的其他文章,这里再推荐几篇当初学习的时候找到的文章:
这里有一个系列,关于媒体应用,写的不错
Android 媒体播放框架MediaSession分析与实践

最后再厚脸皮地推荐一下我自己的:
打造基于MediaSessionCompat的音乐播放(一)
打造基于MediaSessionCompat的音乐播放(二)

猜你喜欢

转载自blog.csdn.net/ckwccc/article/details/80586586