歌曲信息数据实体类NewSong的实现

2654 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
1) 想开发一个Android音乐播放器; 2) 有了Android基础知识,通过项目对基础知识进行巩固; 3) 通过小项目练习,掌握项目开发思路; 4) 对于课后综合作业没有头绪、和设计思路。
你将会学到
通过开发完成一个“畅听音乐”的小项目,实现从Android基本组件的学习到项目开发过程的转变
课程简介

1.        课程的初忠与目的

问题:通过上课发现,在学习完成Android基本组件后,还会迷茫于如何完成一个完整的应用。

本实践课程通过开发完成一个畅听音乐”的小项目,实现从基本组件的学习到项目开发过程的转变。

2. 课程的特点

这是一门实践课程,不讲解AS环境的搭建、基础组件与控件的使用,但会在开发过程中介绍用到的组件的用法。

课程基于项目的基本目标要求,从适合工程开发的角度,分解创建通过组件、自定义视图组件、自定义工具类、自定义接口与适配器扩展基本组件的功能。

课程的目标就是通过一个完整的小项目的开发与练习,带领小伙伴,实现从学完基本组件后,还无法做实际项目的迷茫,到能独立分析、设计、编码完成项目的转变。

课程以创建项目、配置项目基本资源、开发数据封装实体类、开发各类工具类、开发主界面的功能、开发背景设置界面的功能、开发 音频播放界面的功能、开发视频界面的功能为主线进行全程的程序演示。 

3.        项目的目标

Android Studio开发平台中,使用网易云服务数据,实现一个简单的音乐播放器,能实现如下的几个功能:

1)     能实现**歌曲的推荐功能,并以ListView进行音频列表数据展示,如果歌曲有MV,则要在列表中显示视频播放按钮;

2)     能实现按关键词进行在线搜歌的功能,并以ListView进行音频列表进行分页数据展示,如果歌曲有MV,则要在列表中显示视频播放按钮;

3)     点击新歌推荐列表中的歌曲、或点击在线搜歌列表中的歌曲,能保存到播放列表SQLite数据库中,同时打开音乐播放器,使用 MediaPlayer 进行播放;

4)     在音频播放界面可以选择歌曲的循环模式、进行第1首、上1首、下1首、last、播放/停止,暂停/继续的控制,查看正在播放的歌曲列表,并选择切换歌曲,

5)     点击带有MV的歌曲条目中视频播放按钮,能打开视频播放界面进行视频播放;

6)     点击下载按钮,能将网络音频下载到本地,并存储到数据库中,然后可以在本地进行播放。

4.        学习本课程的所需求的技术基础

学习本课程需求的技术基础如下:

1)       会使用AS集成开发环境;

2)       会进行Activity布局界面设计;

3)       会使用SQLite数据库;

4)       会使用SharedPreferences存储对象

5)       了解三方库的概念及加载方式; 

一些扩展知识基础(有了这些基础,学习本课程将会更加简单):

6)       会使用三方库进行网络资源访问和解析;

7)       了解MediaPlayer的开发方法;

8)       文件与文件夹的创建、删除、下载。

当然没有上面的知识,也可以学习这门课程,我会在课程中详细的介绍关键模块的实现过程,也会对相关的组件进行介绍,但不会像上基础课那样详细,因此如果基础弱的话,学习本课程的时间可能会长一些。

 5.        项目中用到的技术

项目中用到的相关技术如下:

1)       网络访问技术 OkHttp3

2)       JSON 解析技术(阿里 fastjson)解析网易云服务 json 数据

3)       MediaPlayer 播放音频文件(本地文件、网络文件)、MediaPlayer+SurfaceView播放视频文件

4)       AnimateObject 对象动画

5)       权限的静态注册与动态注册

6)       根据网易云微服务返回的数据构建实体类 vo

7)       SQLite 数据库的操作(数据库辅助Helper类,各具体的对象的数据操作DAO)

8)       文件的下载处理、文件夹的创建、文件的创建与删除(需要网络权限与文件读写权限)

9)       实现设置整个项目的背景图

10)    SharedPreferences 的使用,存储设置数据

11)    使用三方的图片显示组件 smartImageView 方便的显示图片

12)    自定义圆形视图 CircleImageView

13)    自定义布局界面组件,如 top_with_back.xml

14)    ListView 数据显示技术、分页加载在线搜索数据、自定义接口扩展 ListView 条目中的图片、按钮  控件的点击事件处理

15)    定义 TextView 跑马灯效果

16)    多线程处理,在网络线程中访问UI主线程、在MediaPlayer播放过程中更新UI主线程等

常见问题
问:没有Android的开发基础,可以学习吗?
答:这门课要有一定的开发 基础,要能安装AS环境,要会使用AS 的基本组件,这样跟着视频做项目会比较流畅,但是如果基础比较弱,也是可以的,就是学习时间可能会长一些,在视频中,有各个文件和模块的详细的创建和开发过程,只要跟着视频一步步的做,都是可以做出来的。
展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交