9135988

当前课程知识点:Android应用开发基础 >  第七章 内容提供者ContentProvider >  7.5 课后作业案例 >  7.5.2 实践案例-文件管理器-播放

返回《Android应用开发基础》慕课在线视频课程列表

7.5.2 实践案例-文件管理器-播放在线视频

下一节:讨论:ContentProvide如何使用?

返回《Android应用开发基础》慕课在线视频列表

7.5.2 实践案例-文件管理器-播放课程教案、知识点、字幕

本节通过实例来介绍如何播放手机SD卡中的

图片 音乐 视频分类文件

实现视频的相关操作 实现音频的播放 暂停 停止功能

下面介绍如何实现将读出的媒体文件进行播放

实现视频相关的操作

实现音频的播放、暂停、停止功能

在mediaTest项目的基础上

新建layout_img布局

修改布局类型为线性布局LinearLayout

切换到design模式

新建ImageView组件

清除srcCompat

设置layout_width为match_parent

layout_height为match_parent

设置id为imageView

新建layout_video布局

修改布局类型为线性布局LinearLayout

切换到design模式

新建VideoView组件

设置layout_width为wrap_parent

layout_height为wrap_parent

新建layout_audio布局

修改布局类型为线性布局LinearLayout

切换到design模式

新建三个Button组件

第一个button的id设置为btn_play,文本内容为play

第二个button的id设置为btn_pause

文本内容为pause

第三个button的id设置为btn_stop

文本内容为stop

新建PicturePlayer

VideoPlayer

AudioPlayer

回到主活动

定义私有变量String类型的数组data

定义私有变量Bundle并实例化

实现getSdPermissions方法

增加WRITE_EXTERNAL_STORAGE权限申请

在AndroidManifest文件中,增加写入sd卡的权限

在initData方法,初始话适配器中增加数组data

修改listAudio方法

换为把数据放入data数组中

listVideo、listPic方法中也是一样的修改

在initView方法中,给mListView设置子项点击事件

实现监听接口的方法

通过data.get(position)获取路径

通过substring分割与lastIndexOf查询最后一个

得到文件的格式后缀

如果这个后缀是mp3

或者flac

bundle放入键为mp3,值为路径的数据

定义意图,跳转到AudioPlayer活动

将bundle传入intent中

启动意图

如果这个后缀是mp4

或者wmv

bundle放入键为video,值为路径的数据

定义意图,跳转到VideoPlayer活动

将bundle传入intent中

启动意图

如果这个后缀是png

或者jpg

gif

bundle放入键为pic,值为路径的数据

定义意图,跳转到PicturePlayer活动

将bundle传入intent中

启动意图

切换到PicturePlayer

设置当前布局为layout_img

选中layout_img布局文件

点击右键选择Generate,LayoutCreator

自动生成组件初始化的代码

在initView方法

使用getIntent().getExtras()获取bundle

根据键值pic获取对应的path

将图片的path解析为bitmap

mImageView设置位图资源为bitmap

切换到VideoPlayer

设置当前布局为layout_video

选中layout_video布局文件

点击右键选择Generate LayoutCreator

自动生成组件初始化的代码

定义字符串私有变量path

定义私有变量mediaController

在initView方法中

使用getIntent().getExtras()获取bundle

根据键值video获取对应的video

初始化mediaController

在onCreate函数中调用initVideoPlayer方法

alt+enter实现未实现方法

mVideoView设播放路径

mVideoView设置MediaController

mediaController设置mediaPlayer

显示mediaController

mVideoView抢占焦点d'd

切换到AudioPlayer

设置当前布局为layout_audio

选中layout_audio布局文件

点击右键选择Generate,选中LayoutCreator

定义私有变量mediaPlayer

定义字符串私有变量path

在initView方法中

使用getIntent().

getExtras()获取bundle

根据键值mp3获取对应的路径

在onCreate函数中调用initMediaPlayer方法

alt+enter实现未实现方法

实例化MediaPlayer

在try catch语句中,mediaPlayer设置资源路径

mediaPlayer准备就绪

实现onClick方法

当case为R.id.btn_play时

如果mediaPlayer不是在播放状态

调用 mediaPlayer.start();

当case为R.id.btn_pause

如果mediaPlayer是在播放状态

调用mediaPlayer.pause()

当case为R.id.btn_stop时

如果mediaPlayer是在播放状态

调用 mediaPlayer.reset()

再调用initMediaPlayer初始化

实现onDestroy方法

如果mediaPlayer不为空

停止mediaPlayer

并释放mediaPlayer

代码编写完成后运行程序

点击文件

点击任意一个文件跳到一个活动中进行展示

点击视频文件

点击任何一个视频会跳到另外一个活动进行播放

暂停快进快退

点击音频文件

点击任何一个音频会跳到另外一个活动进行

点击播放 点击停止 点击暂停

点击播放 点击停止 点击暂停

这就是播放手机SD中文件的全部内容

请大家按照讲课的内容完成播放文件的功能

在Android的手机和模拟器中分别运行

通过实例理解播放手机SD的文件流程

Android应用开发基础课程列表:

课程教案

-1 Android应用开发基础-课程标准

-2 Android应用开发基础-教案

第一章 Android概述

-讨论:Android应用开发基础资源下载地址

-讨论的问题:华为“鸿蒙系统”会取代安卓吗?

-Android Studio4.1.2安装常用问题汇总2021.3.15

-1.1 Android概述

--1.1 Android概述

--1.1 Android Studio安装与配置-实践案例

-1.1 Android概述--作业

-1.2 Android程序

--1.2 Android程序

--1.2 第一个Android应用程序-实践案例

-1.2 Android程序--作业

-1.3 Android程序调试

--1.3 Android程序调试

--1.3 Android程序调试-实践案例

-1.3 Android程序调试--作业

-讨论-完成第一个Android程序需要多长时间?

第二章 Android视图

-讨论-什么是Activity?

-2.1 Activity概述

--2.1 Activity概述

--2.1.1 实践案例-Activity生命周期

--2.1.2 实践案例-Activity跳转和数据传递

-2.1 Activity概述--作业

-2.2 Activity应用

--2.2 Activity应用

--2.2 实践案例-Activity四种启动模式

-第2章 Android视图--2.2 Activity应用

-讨论-怎么理解常用的四种启动模式?

第三章 Android组件

-讨论:Android在五个常用布局外还有哪几种布局方式?

-3.1 Activity布局

--3.1 Activity布局

--3.1 实践案例-Android布局

-3.1 Activity布局--作业

-3.2 Android基础组件

--3.2 Android基础组件

--3.2.1 实践案例-文本和按钮组件

--3.2.2 实践案例-编辑框和进度条组件

-3.2 Android基础组件--作业

-3.3 Android中级组件

--3.3 Android中级组件

--3.3.1 实践案例-复选框和开关组件

--3.3.2 实践案例-单选框和图像组件

-3.3 Android中级组件--作业

-3.4 Android适配器

--3.4.1 系统适配器

--3.4.2 自定义适配器

--3.4.1实践案例-系统适配器

--3.4.2 实践案例-自定义适配器

-3.4 Android适配器--作业

-讨论-如何解决Android的布局嵌套问题的?

第四章 Android Fragment

-讨论:Fragment的优点?

-4.1 Fragment碎片组件

--4.1.1 Fragment静态加载

--4.1.2 Fragment与Activity通讯

--4.1.3 Fragment动态加载

--4.1.1 实践案例-Fragment静态加载

--4.1.2 实践案例-Fragment的动态加载

-4.1 Fragment碎片组件--作业

-4.2 ViewPager翻页类组件

--4.2.1 ViewPager翻页类组件

--4.2.2 引导页和标题栏

--4.2 实践案例-引导页和选项卡

-4.2 ViewPager翻页类组件--作业

-讨论:fragment与activity的生命周期有哪些不同?

第五章 广播

-讨论:Android广播有什么作用?

-5.1 Android广播概述

--5.1 Android广播概述

--5.1.1 实践案例-手机电量显示

--5.1.2 实践案例-手机充电状态显示

-5.1 Android广播概述--作业

-5.2 Android广播工作原理

--5.2 Android广播工作原理

--5.2.1 实践案例-手机网络状态显示

--5.2.2 实践案例-短消息接收

-5.2 Android广播工作原理--作业

-5.3 自定义广播

--5.3 自定义广播

--5.3 实践案例-自定义广播与有序广播

-第5章 广播--5.3 自定义广播

-5.4 有序广播

--5.4有序广播

--5.4.2 实践案例-登录广播-记住密码

--5.4.2 实践案例-登录广播-强制退出

-第5章 广播--5.4 有序广播

-讨论:广播的动态注册和静态注册有什么区别?

第六章 Android服务

-讨论:Android的服务有什么作用?

-6.1 系统服务概述

--6.1 系统服务概述

-6.1 系统服务概述--作业

-6.2 访问系统服务

--6.2 访问系统服务

--6.2 实践案例-通知服务

-6.2 访问系统服务--作业

-6.3 自定义服务

--6.3 自定义服务

--6.3.1 实践案例-启动服务

--6.3.2 实践案例-绑定服务

--6.3.3 实践案例-后台服务

-第6章 Android服务--6.3 自定义服务

-6.4 多线程

--6.4 多线程

--6.4.2 实践案例-MyService下载

--6.4.3 实践案例-MyIntentService

--6.4.4 实践案例-AsyncTask实现对话框下载

--6.4.5 实践案例-下载精灵

-第6章 Android服务--6.4 多线程

-讨论:Android中怎么启动Service?

第七章 内容提供者ContentProvider

-讨论:ContentProvide的作用是什么?

-7.1 Android运行权限

--7.1 Android运行权限

--7.1 实践案例-拨打电话与发送短信

-7.1 Android运行权限--作业

-7.2 URL URI概述

--7.2 URL URI概述

-第7章 内容提供者ContentProvider--7.2 URL URI概述

-7.3 ContentProvider概述

--7.3 ContentProvider概述

--7.3 实践案例-读取联系人

-第7章 内容提供者ContentProvider--7.3 ContentProvider概述

-7.4 访问通讯录

--7.4 访问通讯录

--7.4.1 实践案例-读取通讯录

--7.4.2 实践案例-添加通讯录

--7.4.3 实践案例-删除更改通讯录

-第7章 内容提供者ContentProvider--7.4 访问通讯录

-7.5 课后作业案例

--7.5.1 实践案例-文件管理器-查看

--7.5.2 实践案例-文件管理器-播放

-讨论:ContentProvide如何使用?

第八章 多媒体

-讨论:Android多媒体主要应用于哪些场景?

-8.1 相机服务

--8.1 相机服务

--8.1.1实践案例-拍照服务

--8.1.2 实践案例-相册服务

-8.1 相机服务--作业

-8.2 音视频服务

--8.2 音视频服务

--8.2.1实践案例-音乐播放

--8.2.2 实践案例-视频播放

-8.2 音视频服务--作业

-讨论:Android视频组件的使用流程?

第九章 网络技术

-讨论:为什么使用Json作为网络的通讯格式?

-9.1 网络服务概述

--9.1 网络服务概述

--9.1 实践案例-WebView和Http服务

-9.1 网络服务概述--作业

-9.2 网络框架

--9.2 网络框架

--9.2 实践案例-okhttp框架

-9.2 网络框架--作业

-9.3 Json

--9.3 Json

--9.3 实践案例-json协议

-第9章 网络技术--9.3 Json

-9.4 Volley

--9.4 volley

--9.4 实践案例-volley框架

-第9章 网络技术--9.4 Volley

-讨论:OkHttp和Volley的有什么区别?

第十章 数据存储

-讨论:Android的存储方式有哪几种?

-10.1 文件存储

--10.1 文件存储

--10.1.1 实践案例-文件读写布局

--10.1.2 实践案例-文件读写

--10.1.3 实践案例-SharedPreference文件读写

-10.1 文件存储--作业

-10.2 数据库存储

--10.2 数据库存储

--10.2.1 实践案例-Sqlite数据库操作布局

--10.2.2 实践案例-Sqlite数据库操作

-10.2 数据库存储--作业

-讨论:SQLite的基础操作的流程是什么?

课程实训(不计入考核)

-第1章 实训简介以及开发环境配置

--实训项目简介PPT以及实训指导书

--1.1 实训项目简介

--1.2 项目开发环境配置

-第2章 在线音乐播放器整体设计以及服务端开发

--在线音乐播放器整体介绍PPT以及服务端开发实训指导书

--2.1 在线音乐播放器-整体设计

--2.2 在线音乐播放器-服务端开发

-第3章 在线音乐播放器-客户端开发

--3.1 客服端开发实训指导书以及PPT

--3.2 客户端开发-讲课视频

-第4章 在线音乐播放器-完整版

--4.1 实训指导书以及PPT

--4.2 在线音乐播放器-完整版授课视频

-第5章 QQ聊天项目

--5.1 实训指导书以及PPT

--5.2 QQ聊天项目授课视频

-第6章 在线点餐系统

--6.1 实训指导书以及PPT

--6.2 在线点餐系统授课视频

7.5.2 实践案例-文件管理器-播放笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。