传智播客:安卓教程-视频播放器
- 格式:docx
- 大小:236.25 KB
- 文档页数:4
基于Android开发音乐播放器的设计本文主要是在Android系统上对音乐播放器应用程序的设计与实现进行讨论,通过这一过程来进一步学习Android平台,这样对个人未来发展有很大的意义。
本文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse开发工具对播放器代码进行编写。
同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。
对于播放歌曲的文件,本播放器只限于应用层程序的探讨,所以对具体的文件不做深入研究。
实验证明,基于android平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。
关键词: Android,Java,Eclipse,音乐播放器目录1.前言 (1)2系统需求分析 (2)2.1功能需求 (2)2.1.1播放器的基本控制需求 (2)2.1.2功能需求(时序图)分析 (3)2.2 系统结构图和流程图 (4)2.3系统界面需求 (4)2.4系统性能需求 (5)2.5运行环境需求 (5)3 Android项目介绍 (6)3.1什么是Android (6)3.1.1Android的介绍 (6)3.1.2 Android Features 特性: (6)3.1.3 Android 基本框架(Android Architecture) (7)3.2 Android应用软件开发的核心技术 (10)3.2.1 Android 应用开发语言 (10)3.2.2 Android 应用程序组件 (10)3.3 Android开发环境的搭配 (13)3.4 Android模拟器中sd卡的创建和文件的上传 (15)3.4.1 SD卡的创建 (15)3.4.2向sd卡里面上传文件及异常解决 (16)4音乐播放器的详细设计 (17)4.1 播放器的欢迎界面和主界面的设计和说明 (17)4.2 Android媒体播放原理 (20)4.3 播放功能实现细节 (21)5软件测试 (22)5.1 软件的测试 (22)5.1.1软件测试的环境 (22)5.1.2测试阶段 (22)6 代码附录 251.前言当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开发源代码优势的Android系统有最大的发展前景。
4G户外安卓播放器E30使用说明书版本号:Ver.1.0更新记录限有技科子电讯熙海上声明尊敬的用户朋友,非常感谢您选择上海熙讯电子科技有限公司(以下简称熙讯科技)的产品作为您LED 广告设备的控制系统。
本文档主要作用为帮助您快速了解并使用产品,我们在编写文档时力求精准可靠,随时可能对内容进行修改或者变更,恕不另行通知。
版权本文档版权归熙讯科技所所有,未经本公司书面许可,任何单位或个人不得已任何形式对本文内容进行复制、摘录,违者必究。
商标是熙讯科技的注册商标。
上海熙讯电子科技有限公司目录更新记录........................................................................................................Ⅰ声明...............................................................................................................Ⅱ1.运行环境.....................................................................................................................42.硬件连接.....................................................................................................................53.屏幕配置.. (10)4.发送卡设置 (11)5.常规调屏...................................................................................................................126.接收卡配置...............................................................................................................177.显示屏连接...............................................................................................................218.大屏宽高设置...........................................................................................................249.AIPS 发布平台参数配置.........................................................................................2610.AIPS 云平台概览.. (32)11.终端别名修改...........................................................................................................3412.时区设置...................................................................................................................3513.简易节目制作与发布..............................................................................................3714.常见问题排查...........................................................................................................41结束页. (43)上海熙讯电子科技有限公司1运行环境1.硬件环境内存:512以上CPU:奔腾2.6Hz 以上2.软件环境操作系统:Win7/Win8/Win103.调试环境关闭杀毒软件,关闭windows 防火墙或者将应用程序添加到防火墙白名单中中文软件下载链接:/download.html 英文软件下载链接:/download.html上海熙讯电子科技有限公司2硬件连接E30拨码开关说明:注意:E30不能直接带屏。
安卓版商用高清播放器主控软件用户手册V3.0欣威视通安卓版商用高清播放器主控软件V1.01版本历史版权声明南京欣威视通信息科技有限公司版权所有,并保留对本手册及本声明的最终解释权和修改权。
本手册的版权归南京欣威视通信息科技有限公司所有。
除版权法允许之外,未得到南京欣威视通信息科技有限公司的书面许可,任何人不得以任何方式或形式对本手册内的任何部分进行复制、摘录、备份、修改、传播、翻译成其它语言、将其全部或部分用于商业用途。
免责声明本手册依据现有信息制作,其内容如有更改,恕不另行通知。
对南京欣威视通信息科技有限公司产品和服务的唯一担保在随产品和服务一起提供的明示保修声明中列出。
此处的任何信息不应解释为构成了附加担保。
南京欣威视通信息科技有限公司在编写该手册的时候已尽最大努力保证其内容准确可靠,不对本手册中的技术或者编辑遗漏、不准确、或错误导致的损失和损害承担责任。
目录第1章产品概述 (1)1.1主要功能 (1)1.2媒体格式 (1)1.3注意事项 (1)1.4遥控器介绍 (1)第2章节目播放与更新 (3)2.1节目播放 (3)2.2节目更新 (3)2.2.1网络下载节目 (4)2.2.2U盘导入节目 (4)第3章网页互动区域 (6)3.1网页区域 (6)3.2互动区域 (7)第4章首次开机设置 (8)第5章OSD菜单 (10)5.1基础设置 (11)5.1.1屏幕旋转 (11)5.1.2工作模式 (11)5.1.3服务器设置 (12)5.1.4日期和时间 (12)5.1.5系统设置 (15)5.2高级设置 (15)5.2.1系统设置 (15)5.2.2定时开关机 (19)5.2.3分时策略 (22)5.2.4网络设置 (23)5.2.5服务器设置 (23)5.2.6管理软件 (24)5.2.7文件管理 (24)第6章系统升级 (26)第1章产品概述1.1主要功能⏹支持单机、有线、无线工作模式⏹可根据预定时间播放多个播放列表,支持滚动字幕、实时时钟、节目加密等⏹自动从服务器端下载节目至播放终端,亦可手动更新⏹单机工作模式支持播放外接USB存储设备中的媒体文件⏹高清显示图片并同步播放音乐,代替传统灯箱、海报⏹支持多台终端同步播放节目⏹支持播放日志记录与上传功能⏹超强多时段定时开关机功能,可统一设置或按星期设置开关机时间⏹内置8GB存储器,可存放几千张高清图片⏹支持横屏和竖屏显示⏹支持网站访问及网页互动⏹支持多点触控屏幕1.2媒体格式支持的媒体编码格式有:视频:MOV,MP4,AVI,MKV,ASF,MPG,TS,3PG,FLV音频:MP3图片:JPEG、BMP、PNG1.3注意事项⏹不要在离水近的地方或淋湿时安装或使用本产品。
【黑马程序员】Android课程同步笔记智慧北京:Day07(上)智慧北京是一个新闻资讯类的项目,里面包含新闻展示、模块分类、以及视频播放的功能,今天我们主要讲解视频播放这一功能的实现,学完今天的课程我相信大家就能明白市面上大部分app含有在线播放视频的功能是怎么实现的了,好,下面开始咱们的课程,首先看一下我们今天的学习目标。
学习目标熟练使用RecyclerView显示列表数据了解MediaPlayer播放原理熟练使用MediaPlayer播放在线视频熟悉MediaPlayer常见的监听掌握MediaPlayer播放,暂停,重播等功能能够对SeekBar自定义样式视频-项目基本结构搭建引言由于市面上大部分app含有在线播放视频的功能。
在列表中,嵌套一些视频,当我们点击播放按钮,就可以在线播放视频。
回顾大家思考一下,如何实现这样的功能呢?整体的列表我们可以参考使用:recyclerView + adapter列表每个条目中我们可以使用:TextView显示视频标题TextureView + MeidaPlayer来实现视频播放界面好!接下来,跟随传智播客一起搭建项目的基本结构框架项目的分析基本项目的结构包含以下内容:l RecyclerView + Adapter + Holderl 控件的初始化ButterKniftl 联网:权限l 布局管理器、分割线l 视频播放界面使用TextureView + MeidaPlayer实现步骤首先我们初始RecyclerView + adapter将列表显示出来!第一步:创建MainActivity界面布局在项目的res/layout目录下创建MainActivity布局<?xml version="1.0" encoding="utf-8"?><!--传智播客--><RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.itheima.videoplayerlist.MainActivity"><android.support.v7.widget.RecyclerViewandroid:id="@+id/rv"android:layout_width="match_parent"android:layout_height="match_parent"/></RelativeLayout>第二步:初始化控件public class MainActivity extends AppCompatActivity {//传智播客@BindView(R.id.rv)RecyclerView rv;private List<VideoPlayerItemInfo> videoPlayerItemInfoList;private LinearLayoutManager lm;private VideoPlayListAdatper adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);ButterKnife.bind(this);//网络视频路径String url ="/videolib3/1604/28/fVobI0704/SD/fVobI0704-mobile. mp4";//数据的初始化videoPlayerItemInfoList = new ArrayList<>();for (int i = 0; i < 10; i++) {videoPlayerItemInfoList.add(new VideoPlayerItemInfo(i,url));}//初始化RecyclerViewlm = new LinearLayoutManager(this);//设置布局管理器rv.setLayoutManager(lm);//添加分割线rv.addItemDecoration(newRecycleViewDivider(this,LinearLayoutManager.HORIZONTAL,1, Color.BLACK));//创建适配器adapter = new VideoPlayListAdatper(this, videoPlayerItemInfoList);//设置适配器rv.setAdapter(adapter);}}第三步:适配器public class VideoPlayListAdatper extends RecyclerView.Adapter {//传智播客private Context context;private List<VideoPlayerItemInfo> videoPlayerItemInfoList;public VideoPlayListAdatper(Context context, List<VideoPlayerItemInfo> videoPlayerItemInfoList) {this.context = context;this.videoPlayerItemInfoList = videoPlayerItemInfoList;}@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = LayoutInflater.from(context).inflate(yout.item_video_play, parent, false);MyViewHolder viewHolder = new MyViewHolder(view);return viewHolder;}@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { }@Overridepublic int getItemCount() {return videoPlayerItemInfoList != null ? videoPlayerItemInfoList.size() : 0;}}第四步:设置适配器public class MainActivity extends AppCompatActivity {//传智播客@BindView(R.id.rv)RecyclerView rv;private List<VideoPlayerItemInfo> videoPlayerItemInfoList;private LinearLayoutManager lm;private VideoPlayListAdatper adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);ButterKnife.bind(this);//网络视频路径String url ="/videolib3/1604/28/fVobI0704/SD/fVobI0704-mobile. mp4";//数据的初始化videoPlayerItemInfoList = new ArrayList<>();for (int i = 0; i < 10; i++) {videoPlayerItemInfoList.add(new VideoPlayerItemInfo(i,url));}//初始化RecyclerViewlm = new LinearLayoutManager(this);//设置布局管理器rv.setLayoutManager(lm);//添加分割线rv.addItemDecoration(newRecycleViewDivider(this,LinearLayoutManager.HORIZONTAL,1, Color.BLACK));//创建适配器adapter = new VideoPlayListAdatper(this, videoPlayerItemInfoList);//设置适配器rv.setAdapter(adapter);}}视频-条目布局的分析和设计引言项目的基本结构搭建出来,之后,接下来我们分析一下每个条目的布局设计。
传智播客:安卓教程-视频播放器
1.6.1使用MediaPlayer+SurfaceView播放视频
在该节中,视频播放依然使用MediaPlayer类,为了方便演示,我们直接使用本文1.5章节中创建的工程,只需在布局文件添加SurfaceView控件即可。
布局文件如下所示。
【文件1-9】activity_main.xml
1.<LinearLayout xmlns:android="/apk/res/android"
2.android:layout_width="match_parent"
3.android:layout_height="match_parent"
4.android:orientation="vertical">
5.
6.<LinearLayout
7.android:layout_width="match_parent"
8.android:layout_height="wrap_content"
9.android:orientation="horizontal"
10.>
11.<Button
12. android:onClick="play"
13. android:layout_width="0dp"
14. android:layout_weight="1"
15. android:layout_height="wrap_content"
16. android:text="播放"
17. />
18.<Button
19. android:onClick="pause"
20. android:layout_width="0dp"
21. android:layout_weight="1"
22. android:layout_height="wrap_content"
23. android:text="暂停"
24. />
25.<Button
26. android:onClick="stop"
27. android:layout_width="0dp"
28. android:layout_weight="1"
29. android:layout_height="wrap_content"
30. android:text="停止"
31. />
32.
33.</LinearLayout>
34.
35.<SeekBar
36.android:layout_width="match_parent"
37.android:layout_height="wrap_content"
38.android:id="@+id/sb"
39./>
40.<SurfaceView
41.android:layout_width="match_parent"
42.android:layout_height="match_parent"
43.android:id="@+id/sv"
44./>
45.
46. </LinearLayout>
我们直接在1.5章节的代码基础上进行修改,修改MainActivity类,这里只给出不同的代码片段:
1.添加如下变量的声明
a)private SurfaceView sv;
b)private SurfaceHolder holder;
2.在play()方法中添加如下代码
a)//设置输出画面
b)player.setDisplay(holder);
3.获取SurfaceView 对象,并设置缓存方式
sv = (SurfaceView) findViewById(R.id.sv);
a)Holder = sv.getHolder();
b)/**
c)* SurfaceView 内部采用双缓冲区
d)* 设置不维护自己的缓存区,使用屏幕的渲染引擎将内容推*
e)* 送到用户面前
f)*/
g)holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
1.6.2使用VideoView播放视频
VideoView 跟MediaPlayer 相比播放视频步骤要简单的多,因为VideoView 原生提供了播放,暂停、快
进、快退、进度条等方法。
使用起来要方便的很多。
1. 设置布局文件,布局文件比较简单,因此这里只给你VideoView 标签
a)<VideoView
b)android:id="@+id/vv"
c)android:layout_width="match_parent"
d)android:layout_height="match_parent" />
2. 设置VideoView 的播放文件路径和媒体控制器,调用start 方法即可播放媒体文件
1.//实例化 VideoView 对象
2.vv = (VideoView)findViewById(R.id.vv);
3.//从界面获取播放路径
4.et_path = (EditText) findViewById(R.id.et_path);
5.//给VideoView设置视频路径
6.vv.setVideoPath(et_path.getText().toString());
7.//设置VideoView控制器,我们当前类实现了MediaPlayerControl接口
8.vv.setMediaController(new MediaController(this));
9.//开始播放
10.vv.start();
11.//设置当前播放器窗口设置为焦点
12.vv.requestFocus();
3. 覆写MediaPlayerControl 接口中的抽象方法
1.@Override
2.public void start() {
3.}
4.@Override
5.public void pause() {
6.
7.}
8.@Override
9.public int getDuration() {
10.return0;
11.}
12.@Override
13.
14.public int getCurrentPosition() {
15.return0;
16.}
17.@Override
18.public void seekTo(int pos) {
19.}
20.@Override
21.public boolean isPlaying(){
22.return false;
23.}
24.@Override
25.public int getBufferPercentage() {
26.return0;
27.}
28.@Override
29.public boolean canPause() {
30.return false;
31.}
32.@Override
33.public boolean canSeekBackward() {
34.return false;
35.}
36.@Override
37.public boolean canSeekForward() {
38.return false;
39.}
40.@Override
41.public int getAudioSessionId(){
42.return0;
43.}
44.
注意:
上面的方法都是回调方法,我们可以在这些方法里面实现我们的业务逻辑。
只有当我们给VideoView 设置setMediaController后控制器才会出现。
图1-14音乐播放器效果。