Android课程设计之视频播放器
CSDN下载:https://download.csdn.net/download/eseszb/10463442
移动互联网开发
课程设计报告
学生姓名:学 号:
专业:计算机科学与技术 班级:
设计题目:本地视频播放器
学年学期:年秋季学期
指导教师:
目 录
一、 设计题目 1
二、 设计目的 1
三、 设计原理及方案 1
1 使用的软件工具和环境 1
2 需求分析与概要设计 1
3 详细设计和关键问题 1
四、 实现效果 1
五、 设计体会 1
参 考 文 献3
一、 设计题目
一个基于Android平台的本地视频播放器
二、 设计目的
开发出一个简单的本地视频播放器,并实现以下功能:
<1>能够播放.avi, .mp4等文件
<2>对视频文件进行播放、暂停、快进、快退
<3>能处理简单的异常,例如文件不存在等
<4>能正常启动,退出
<5>能够在手机上使用该系统
三、 设计原理及方案
1 使用的软件工具和环境
JDK是Java语言的原创者推出的原始开发环境。采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。在Windows上安装JDK非常简单,访问Oracle官方网站下载页面,网址为http://www.oracle.com/technetwork/indexes/downloads/index.html,也可从其他网站下载。下载完成后,双击运行JDK安装程序并根据提示设定环境变量。
下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,默认SDK安装目录为$SDK_ROOT 。
Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH变量的行,可以自己添加一行: export PATH=${PATH}:<$SDK_ROOT/tools的完全路径>
Mac下,在home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,可以创建一个.bash_profile文件。
Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。
通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当升级了SDK后,如果安装路径有变动的话,不要忘记了更新PATH变量的设置,将其指向变动后的路径。
配置SDK有两种方法:第一种,通过SDK下载器自动下载和配置。适合网络好,下载速度快的情况;第二种,借助工具下载SDK文件,手工配置。适合网络不是很好,下载速度慢的情况下。
下载Eclipse安装包后,无需安装,只需解压缩,点击“eclipse.exe”文件即可运行。
Android为Eclipse定制了一个插件,即Android Develpoment Tools(ADT),目的是为用户提供一个强大的综合环境用于开发Android应用程序。ADT扩展了Eclipse的功能,可以让用户快速建立Android项目,创建应用程序界面,在基于Android框架API的基础上添加组件,以及用SDK工具集调试应用程序,甚至导出签名(或未签名)的APKs以便发行应用程序。安装ADT:启动Eclipse,选择Help>Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入"ADT",然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件,点击OK。返回可用软件的视图,你会看到这个插件,然后选择Developmer Tools,点击Next,最后重启Eclipse。
软件开发环境搭建好后,便可以开始创建项目了。
2 需求分析与概要设计
视频播放器的主界面是用户在手机桌面点击图标后打开的界面,该界面显示视频列表,播放器的播放界面则是用于视频播放的界面,该界面的主要功能包括播放、暂停、快进、快退
,并且有进度条显示播放的进度。总之用户界面设计是以人为中心,使产品达到简单使用和愉悦使用的设计,视频播放器的界面用例图如下图所示
(2) 暂停功能:当视频正在播放且没有暂停和停止,用户可以暂停正在播放的视频
其事件流:①用户单击“暂停”按钮 ②播放器将暂停当前播放的视频。
3 详细设计和关键问题
对事件按钮进行监听,完成每个按钮的功能,以及代码编写
(1)软件的布局
此为一个视频播放器,设计的软件需要支持快进、快退、暂停、继续和进度拖曳等功能。视频播放软件工程文件主要包括src文件夹(Java源码)、res文件夹(资源文件)和AndroidMainfest.xml(程序清单)。软件主要由Activities组成,每个Activity对应一个模块。不同的Activity通过Intent进行通信和相互调用。软件的布局(main.xml)如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="键入文件名称"
android:textSize="20dp"
/>
<EditText
android:id="@+id/edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/starttoplay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Open file"
android:textSize="20dp"
/>
<VideoView
android:id="@+id/video"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" 点击界面获取播放控制键"
android:textSize="20dp"
/>
<Button
android:id="@+id/quit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Quit"
android:textSize="20dp"
/>
</LinearLayout>
布局主体为LinearLayout,由多个TextView、Button等类组成。
此程序需要输入文件的绝对路径,例如"/sdcard/video.mp4";输入文件名字之后,点击open file,即可搜索到你想要播放的视频,部分程序如下:
private void doSearch(String path) {
File file = new File(path);
if (file.exists()) {
if (file.isDirectory()) {
File[] fileArray = file.listFiles();
for (File f : fileArray) {
if (f.isDirectory()) {// 判断是否文件夹
// 文件夹为true
doSearch(f.getPath());
} else {
if (f.getName().endsWith("mp4") || f.getName().endsWith("3gp")) {
VideoListBean bean = new VideoListBean();
bean.setVideo_name(f.getName());
bean.setVideo_path(f.getAbsolutePath());
Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(f.getAbsolutePath(), Thumbnails.MINI_KIND);
if (bitmap != null) {
bitmap = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth() * 300 / bitmap.getHeight(), 300, true);
bean.setVideo_imgbg(bitmap);
}
list.add(bean);
}
}
}
}
}
}
在打开播放文件之后,点击画面的空白部分,这时会弹出视频播放控制按钮,分别是后退、播放/暂停和前进,可以对视频播放时间轴进行拖曳。
/** 点击事件 */
private void widgetListener() {
/** 列表点击事件 */
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
index_position = position;
txt_max_time.setText(R.string.play_time);
img_start.setImageResource(R.drawable.start_video_df);
video_VideoView.stopPlayback();
setVideo(position);
}
});
Android课程设计之视频播放器相关推荐
- 音频播放器android课程设计,Android课程设计:Android音乐播放器的设计与实现
内容简介: Android课程设计:Android音乐播放器的设计与实现,共21页,7729字,附源程序等. 摘要:本文主要介绍了一个基于Andriod的音乐播放器的设计与实现.主要包括可行性分析,需 ...
- Android课程设计大作业-音乐播放器
Android课程设计大作业-音乐播放器 一.**主要实现界面效果** 1)登录界面 2)音乐列表界面 3)音乐播放界面 二.**系统设计** 1)使用Service播放音乐 2) 前台界面(Acti ...
- Android课程设计(健康管理软件开发)
Android 课程设计 Android开发使用软件(RecyclerView+ListView+SQLite) 一个实用的健康管理软件,可以查询各种食物的热量,每天健身打卡,发表动态,可以点击图片链 ...
- Android进阶:自定义视频播放器开发(上)
随着快手,抖音,西瓜视频等视频APP的崛起,视频播放已经成为主流,此时作为Android研发的你,想要提高自己的能力还不知道怎么开发视频播放器怎么行?所以今天就带着大家一起开发一个简易播放器:Smal ...
- Android进阶:自定义视频播放器开发(下)
上一篇文章我们主要讲了视频播放器开发之前需要准备的一个知识,TextureView,用于对图像流的处理.这篇文章开始构建一个基础的视频播放器. 一.准备工作 在之前的文章已经说过了,播放器也是一个vi ...
- Android Video Player. 安卓视频播放器,封装 MediaPlayer、ExoPlayer、IjkPlayer。模仿抖音,悬浮播放,广告播放,列表播放,弹幕
DKVideoPlayer 项目地址:dueeeke/DKVideoPlayer 简介: Android Video Player. 安卓视频播放器,封装 MediaPlayer.ExoPlayer. ...
- Android课程设计--网上购物商城
Android的特征: 提供访问硬件的API函数,简化访问过程等 具有自己的运行时和虚拟机 提供了丰富的界面控件供使用者之间调用,加快用户界面的开发速度,保证Android平台上程序界面的一致性 提供 ...
- java蜂鸣节拍器_电子课程设计-电子节拍器的设计.doc
电子课程设计-电子节拍器的设计 通 信 工 程 专业 课程设计题单 班级 学生 孙伟杰 课程名称 电子课程设计 课 题 电子节拍器的设计 设计要求 节拍器具有声光显示功能:设有2/4,3/4,4/4三 ...
- C语言课程设计-Mp3播放器(1)
C语言课程设计-MP3播放器 要求:做一个MP3播放器,实现播放,暂停,随机播放模式,单曲循环模式,循序播放模式,查找播放. 问题1:怎么获取音频文件? 可以使用_findfirst函数(链接:_fi ...
最新文章
- SQLServer特殊字符/生僻字与varchar
- sftp 服务器外网访问设置
- 定量遥感:计算地方时和太阳高度角(C++代码)
- Vue.js之初印象
- C语言库函数大全及应用实例三
- Appium+python自动化17-启动iOS模拟器APP源码案例
- SQL Prompt10 安装激活教程,让你写sql 如鱼得水
- 最全面详细讲解Oracle入门(新手必看)
- openstack平台虚拟机vip设置
- 王者荣耀是怎样炼成的(三)unity组件与脚本
- 基于西储大学的轴承故障诊断系统设计
- 皇子皮肤测试软件,买了皇子的SSG皮肤,说一下特效和手感,顺便说下皇子各个皮肤排名。...
- 深度学习环境搭建(ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn+其他软件)
- python Django 快捷键
- 水果店开业朋友圈,水果店开业朋友圈宣传
- python的numpy库安装_Python库之numpy库的安装教程
- 分布式系统-共识协议
- 帝国霸略老显示服务器连接失败,帝国霸略怎么玩?新手必看技巧攻略[图]
- java 庖丁解牛_“庖丁解牛” 分词器实现
- oracle连接失败的原因总结
热门文章
- 记录一下今天安装tomcat时遇到的问题(初学者笔记)
- delphi 裁剪mp3_如何编辑mp3文件详细信息(Delphi)
- windows 2003 自带tftp32设置方法
- java 开发metro_JavaFX Metro UI 和 开发库使用简介
- Windows Vista Ultimate OEM 21in1 简体中文版(终结版)
- Linux目录权限管理
- SyntaxHighlighter 设置
- 西门子PLC地址的分配方式有哪些?
- 祛痘产品微商怎么引流?祛痘产品如何引流精准客户
- 量化交易学习系列13-系统交易的职业道路是什么