当前位置:文档之家› 视频播放器设计分析

视频播放器设计分析

视频播放器设计分析
视频播放器设计分析

视频播放器设计

1 需求分析

由于计算机的普及,极大地改变了人们的生活。随之带来了开发各种软件的需求。家用型计算机主要用于家用软件、学习软件、游戏软件和多媒体和多媒体软件,以及播放CD、VCD、DVD、MP3等多媒体信息。然而多媒体播放器的开发仍然不能满足人们的需求,多媒体文件格式多样,但却没有一款播放器能够满足所有格式的解码。人们渴望解码能力更强大,功能更完备的多媒体播放器。

“多媒体”是一种新型的信息处理与传播技术。有人认为它是信息及其传输媒介方面的一场根本革命。人们对新技术的渴望和欢迎、新奇感和占有欲、宣传热情和赞美态度,是发自内心的。特别是计算机多媒体技术的功能,令人大开眼界,惊叹不已。它在商业、信息检索、文化娱乐和教育等方面的应用效果明显,前景广阔。

由多媒体播放器的开发现状看来,并没有哪一款播放器能适应所有多媒体文件的解读,随着视频、音频的迅猛发展,媒体文件的格式层出不穷,由过往美国在线(AOL)公司的Nullsoft部门开发的Winamp独占鳌头,到Real Networks公司的Real Player和微软公司的Windows Media Player风靡全球,再到如今播放器开发的百花齐放的竞争时代,多媒体播放器的开发经历了许多风浪和变化,但是,仍然没有出现全能的播放器,始终没有跨越编码格式的局限,随着多媒体技术的不断发展,人们对多媒体软件的要求也不断高涨,所以对多媒体软件的开发也成为当今计算机开发的重要课题。目前的音频、视频格式繁多,研制格式覆盖面广的多媒体播放器前景非常广泛。

随着计算机、家电、通信等技术的不断发展,多媒体技术有着广泛的开发前景,尤其是多媒体播放器的开发,开发格式覆盖面更广,兼容性更好,功能更完备的播放器势在必行。本文主要采用C++ Builder2009作为开发工具,设计并实现一个多媒体播放器。可播放MP3,AVI,WMV,WMA,RM,RMVB,SWF等多种格式的多媒体文件,并且能够控制播放,暂停,停止,快进,后退,音量控制的调节,选择上一曲,选择下一曲,图像的显示,文件的计时,列表文件的添减操作等多种播放控制功能,界面简明,操作简单。

2 系统总体设计

2.1DirectShow概述

DirectShow是一种通过自定义或内置的大量的Filter(过滤器)来处理多媒体

数据的体系结构。这些Filter大致分三类:Source Filter(源过滤器)、Transform Filter(转换过滤器)、Render Filter(呈现过滤器)。源过滤器主要负责获取数据,数据源可以是文件、网络、计算机采集卡或数字摄像机里的,然后数据向下传输到Transform Filter,它主要负责数据的格式转换,然后继续向下传输到Render Filter,它主要负责数据的最终去向,将数据送给显卡声卡进行播放或输出变成文件存储起来,见图2-1。

图2-1 DirectShow 开发应用程序原理图

过滤器Filter 是建立在COM 技术基础上的,每个Filter 本身就是一个COM 组件,各个Filter 集合组成过滤器图(Filter .Graph),DirectShow 提供Filter Graph Manager 组件来管理整个过滤器图,比如Filter 间的连接和数据流动。Filter 之间通过Pin(针脚)连接。

更多感性认识DirectShow ,可以DirectX SDK 中的自带的实用的程序

GraphEdit ,位于安装目录\Bin\DXUtils\graphedt.exe 。GraphEdit 是构造Filter Graph Manager 的可视化工具,在GraphEdit 中可以很方便地设计出过滤器图,并验证其可行性。比如:播放一个典型的Demo1.mpg 文件(将文件拖动到GraphEdit 窗口)所自动构建的Filter Graph 。见图2-2。

图2-2 MPEG 文件播放的Filter Graph

如图2所示,箭头方向即是数据的流动,可以看到:MPEG-1 Stream Splitter 属于Source Filters ,负责接收源文件数据;MPEG Audio Decoder 、MPEG Video Decoder 属于Transform Filters ;分别负责视频、

音频的解码;Default DirectSound Device 、Video Renderer 属于Render Filters ,分别负责对视频显示和音频播放。执行菜单Graph->Play ,可以看到播放的影音文件。在Graph->Insert Filters 可以看到DirectShow 提供的大量的支持基本应用的Filter 。

2.2软件的总体架构

图2-3 软件架构

2.3 详细设计与实现

下面在C++ Builder中,利用DirectShow技术设计媒体播放器,介绍了DirectShow程序的一般编写方法。以两种方法实现:一种是直接用DirectX SDK;另一种是用基于DirectShow技术的第三方控件包DsPack。

2.3.1 直接用Direct X SDK中的DirectShow技术的媒体播放器。

用DirectShow编写播放器,可以说主要包括三步:

①创建一个Filter Graph Manager组件。

②根据实际的应用,创建一条完整的链路。比如播放一个本地文件:

m_FilterGraph->RenderFile(“Demo1.mpg”,NULL);

③调用Filter Graph Manager(或某个Filter)上的各个接口方法进行控制。并完成Filter Gramph Manager与应用程序的事件交互。比如IMediaControl接口方法Run()、Stop()来控制媒体的播放与停止。

在本实例中,第一步创建一个Filter Graph Manager组件,由自定义的封装类CDXGraph来完成,它的实现文件是CDXGraph.cpp和CDXGraph.h。第二三步要实现与CDXGraph之问的事件交互。由主窗口MainForm(MainUnit.cpp和MainUnit.h)完成。

该程序部分主要代码如下:

//定义基本接口。IGraphBuilder是最重要的接口,用于构造Filter graph;IMediaControl播放控制接口,控制播放、停止、暂停等;IMediaEventEx:应用程序通过此接口获得播放过程中发生的事件,如播放完毕等。IBasicVideo、IBasicAudio分别是图像和声音控制接口;IVideoWindow视频窗口控制接口;IMediaSeeking用于媒体数据流的定位,提供对播放的精确控制,如获得当前播放位置等。

IGraphBuilder *mGraph;

IMediaControl *mMediaControl;

IMediaEVentEx *mEvent;

IBasicVideo *mBasicVideo;

IBasicAudio *mBasicAudio;

IVideoWindow *mVideoWindow;

IMediaSeeking *mSeeking;

//用API函数初始化COM组件库CoInitialize(NULL);

//创建Filter graph对象,得到IGraphBuilder接口的接口指针mGrph

HRESULT hr=CoCreateInstance(CLSID_FilteGraph,NULL,

CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void * *)&mGraph);

//用QueryInterface()函数获取接口指针

hr = mGraph -> QueryInterface(IID_IMediaControl,

(void * *)&mMediaControl);

hr = mGraph -> QueryInterface(IID_IMediaEventEx,

(void * *)&mEvent);

hr = mGraph -> QueryInterface(IID_IBasicVideo,

(void * *)&mBasicVideo);

hr = mGraph -> QueryInterface(IID_IBasicAudio,

(void * *)&mBasicAudio);

hr = mGraph -> QueryInterface(IID_Ⅳideowindow,

(void * *)&mVideowindow);

hf = mGraph -> QueryInterface(IID_lMediaSeeking,

(void * *)&mseeking);

//连接输入输出Pin针脚,连接各个Filter

hr=mGraph -> ConnectDirect(inOutputPin,inInputPin,inMediaTyp);

//IGraphBuilder接口的方法RenderFile来连接给定的媒体文件,完成Filter Graph的构建。

m_FilterGraph -> RenderFile(m_SourceFile.c_str());

//设置视频窗口并设置消息通知窗口

m_FilteGraph -> SetDisplaywindow(Panell ->Handle);

m_FilteGraph -> SetNotifyWindow(this ->Handle);

//开始播放

m_FilteGraph ->Run();

……

//关闭COM组件库,释放资源

CoUtlinitialize();

2.3.2 基于DirectShow技术的第三方控件包DSPack的媒体播放器

Dspack2.34是C++ Builder中用于做DirectShow开发的免费VCL控件。下载地址:http://www.https://www.doczj.com/doc/674222677.html,/。DSPack的安装可以参考相关文档。

图2-4组件面板上的DSPack2.34

Dspack2.34中有七个组件:FilterGraph、VideoWindow、SampleGrabber、Filter、ASFWriter、DSTrackBar、DSVideoWindowEx2。见图5-1。

FilterGraph组件基本对应于DirectShow中的Filter Graph Manager,Filter Graph的创建和控制由它完成。Filter组件可以充当DirectShow中的各种Filter,VideoWindow组件相当于是一个RenderingFilter,用来显示采集到的视频图像。其它各组件的详细说明可以参照DSPack安装目录下的帮助文档help.chm[2-3]。

程序由一个主窗体MainForm组成。MainForm窗体上放置FilterGraph组件,属性Name命名为FilterGraph,Mode属性为gmNormal;放置VideoWindow组件,FilterGraph属性设置为FilterGraph;放置DSTrackBar组件,用于显示播放进度;其它放置0penDialog、MainMenu、四个Button组件,Caption分别设置为打开、播放、暂停、停止。

MainForm中主要代码如下:

Buttonl的0nclick事件添加如下代码:

if(0penDialog -> Execute())

|FilterGraph -> Active = TRUE;//初始化各个Filter,并建立FilterGraph FilterGraph -> RenderFile(OpenDialog ->FileNalm);

//播放文件名给FilterGraph

}

Button2的OnClick事件添加如下代码:

FilterGraph -> Play(); //控制FilterGraph的播放

Button3、Button4的0nclick事件分别添加如下代码:

FilterGraph -> Paus(); //播放暂停

FilterGraph -> Stop(); //播放停止

VideoWindw的OnDblClick双击事件添加代码:

VideoWindow -> FullScreen =! VideoWindow ->FullScreen;//全屏播放MainForm的OnCloseQuery事件添加如下代码:

FiherGraph -> Active = FALsE;//释放各个Filter

本程序开发环境WindowsXP + DirectX9.O + DSPack2.34。本程序编译后成功运行。

3 测试与维护

3.1 创建和测试应用程序

为了确保本系统能够正常运行,需要在开发完成之后做一次较全面的测试。现将具体操作及过程举例说明如下:

创建和测试应用程序应是交替进行的,既要注意开发的效率也要注意它的稳定性。每编写一个模块,就要对这个模块进行测试,看它能否根据特定的要求工作。及早发现问题,及早解决,否则到最后再来测试的话,难度会大大增加。

3.2 程序改进

本软件没有考虑到删除播放列表中文件在ListBox中的索引号小于当前值的时候,删除之后不能把光标移动到当前播放文件。

本软件没有提供解码更新,这是本软件以后要着重改的地方。

3.3测试方法

一般来说,对程序测试有两种测试方法:如果已经知道了软件系统应具有的功能,可通过测试来对每个功能是否都能正常使用;如果知道程序的内部工作过程,可以通过测试来检测程序内部是否按照规格说明书的规定正常进行。前一种方法称为黑盒测试,后一种方法称为白盒子测试。黑盒测试又称为功能测试,白盒子测试又称为结构测试。[4]

本系统采用黑盒测试,以下以播放WMV文件为例子。

界面如下:

4 总结

基于两种不同方法实现媒体播放器程序时的代码比较,我们采用了C++ Bui- ldel2009 + Direct X SDK9.O + DSPack2.34编写该播放器。因为用c++ Buildel2009 + Directx SDK9.0编写时,代码行约为400行,并需要深入的DirectShow和COM组件知识;而采用C++ Buildel2009 + Direct X SDK9.O + DSPack2.34编写时,代码行约为20行,仅需要少量的DirectShow和COM知识。根据比较用第二种方法实现Dir- ectShow程序时,所需要知识少,开发程序快速高效。目前DirectShow广泛应用于开发多媒体程序。

在该软件的制作实现过程中,给人最大的启发的一点是系统架构和设计模式非常重要。代码的组织都是非常重要的,因为这关系到日后的维护以及扩展。编写代码更加有条理,更加符合软件工程的标准,这才是最重要的。

刚接触视频播放器编程的时候,我们认为其中最重要的是解码算法。但是头几天编写程序的时候却发现程序越写越不容易维护,可见是我们走错了方向。后来我们向老师讨教,他告诉我们:“我们的先人早已为我们准备好了各种精良可用的现成算法,我们所要做的就是直接“拿来主义”罢了;但是对于代码的组织(也就是软件的架构)才是真正软件工业的核心部分,因为软件事实上是直接和经济挂钩的,因此我们必须在编写代码之前选择一种最为合适的方法来组织这些代码,否则我们将会失去更多的时间和金钱。”。

经过并不长的时间里,去实现软件编程的这个过程使我们慢慢进入到软件编程的大堂,慢慢感受到实现一个软件是需要大量的资源。这个过程使我明白了许多,也收获了许多。首先,我们得去熟悉开发环境,只有熟悉开发环境才能更好地、更有效地实现软件开发;其次,我们还得去查找大量的资料,无论是图书馆里的关于该软件实现的书籍,或者是网上实现该软件的代码或者教程;最后,在面对编程时,我们最好先弄清楚程序的流程,弄好程序里每个小模块,然后把每个小模块组织成完整的程序。

MFC视频播放器(试过,可以成功)

1需求分析 NBA现役巨星资料库 随着NBA (National Basketball Association)近二十年来在中国市场的扩张,如今中国积攒的相当一部分NBA的忠实球迷,更随着中国如王治郅,姚明,易建联等中国球员加入NBA,更多的中国人开始了解NBA。从而NBA得各种信息变得炙手可热,如NBA巨星们的视频,个人资料,周边故事,赛事,等等。这些信息,现如今不仅仅在网络上被各种人使用使用,在日常生活中也是很值得爱好NBA的人去了解的。 本人也是一位NBA的爱好者,在一次资料的搜集中,我想要查询网络上“现役NBA巨星的资料”时,可并没有发现,只有“ 50大”(NBA历史上前五十的巨星)诸多资料。其现役巨星的资料大多都是分散的记录。 在当下,“50大”只能是NBA的周边或历史,而现役巨星才是现在球迷的追求对象,所以一套完整的现役巨星资料可以称得上是一份绝对的值得珍藏的资料。 但是整理一份资料简单,只需在各种网站中搜索巨星的名字,相关资料自然会弹出,可如何去让它具有一个更高的集成性,如何去让它更符合我们拥有如今操作理念,不在是单一的单窗口字面文档。 设计一个基于数据库且可实现多窗口,在形式上多样化,这就是此次MFC程序设计的主导方向。 MFC程序设计 既然程序是基于数据库的,固然数据库是必须建立的,在MFC建立数据库的方式有很多,期中最简单操作的是Access数据库的调用可通过ODBC。而形成形式上的突破方法是很多的,如联入多媒体,插入视图,增加功能等等。 数据流图 图片视频

2系统设计概要设计

在需求分析中提到所建立的程序可以实现多窗口调用且具有多功能的。首先, 建立的程序是基于数据库的多文档格式 MFC 程序,整个程序大至可分为三个模 块。 体系结构设计 分析我设计的这个程序,其三个模块并不是互相调用的,而是另两个模块以窗 口对接按键的形式,被第一个模块调用的。这样的结构存在属于“层次结构” , 高层的工作建立在低层的工作上面,把复杂的事情转化成多件逐层递进的事件。 模块设计 上面说到,这个程序设计中有三个模块,其中两个以窗口形式存在的模块与另 一模块的耦合(Coupling )较强,可是这两个模块却又是完全独立的,他们属于 强内聚(Cohesion )。这样的设计算不上“强内聚,弱耦合”。可在程序中以窗口 运行的两个模块是具有一定的封闭性。 详细设计 ? NEAffite^星信电:城宰(Atctis 2000丈件棺式I 角炳d tedistma dmw I X I -a 蛊 iB 2使用ODBC 实现对Access 的驱动(WIN7在主控面板右上角输入“ ODBC”) 科比?布莱恩特 砂圭尔?真的 阿伦? 艾弗森 薔怖恩-韦懐 勒布朗?普姆斯 億怖特?霍华德 克里斯?保罗 史蒂夫 ?抽什 凯文?仙内特 待雷西?麦克格€ 姚用 小飞侠 1.英尺$英= 2.1GM 打却?1英 誓案 1.83M 阳贪尺0英十 闷电侠 1.93m / 6尺4寸 小皇帝 2. (J3mf6英尺£英匚 M 21册6英尺11金 蹩王 1.83m 1.91m 線王 2.1W6 尺 11 寸 T _ Mac 2. 03冊£英尺£英; 沦鋼T 英尺6疑 sa.oks/aos 磅 得分后卫/小前^洛杉矶湖人限 HT 阪型融 中饉 漩士顿凯尔特” T4.业討1閃磅得分后卫 费城七六人臥 20&切听埜斤得分后卫/组织后迈阿密热火 113 4W250^小前覆 迈阿魏火臥 120kg 中锂 奥兰多魔术阴 TO- *kg 扌空球后卫 新臭尔良靑虫郢 89kj 113.4ke/2S0^ 101kg/223i^ 134.2k* 渐磅 锋后 前 分锂 犬得中 菲尼克斯衣阳F 披士屯帥特‘ 底特律活基陆 休斯顿火箭 记录:?E r^jrs II 裁 I 隼号 出牛曰期丨 身為 1 EE5*]共有记录数"1

播放器CSCI详细设计说明书_界面设计_0943041300_曹阳

文档编号: 浮云播放器 外观CSCI详细设计说明书 单位名称 余春小组 浮云播放器 姓名:曹阳 学号:0943041300 2011年6月

修改记录

1 范围 1.1 标识 1.2 CSCI 概述 1.3 文档概述 2 引用的文档 3 CSCI 设计 3.1 CSCI结构 3.2 CSCI运行组织 3.3 CSCI性能要求 3.4 CSCI设计限制和约束 3.5 CSCI测试计划 4 CSC 设计 4.x CSC的名称和唯一标识符 4.x.y 下一级CSC的名称和唯一标识符 4.x.y.z CSU的名称和唯一标识符 5 CSCI数据说明 5.1 CSCI内部数据元素 5.2 CSCI外部接口数据元素 6 CSCI数据文件 6.1 CSC和CSU数据文件的交叉引用 6.x数据文件名和唯一标识符 7 需求可追踪性

1.1 标识 【系统背景】 系统标识符:(系统标识符) 系统名称:(系统名称) 缩写:给出系统的缩写 【适用的CSCI】 标识符:(CSCI标识符) 名称:(CSCI名称) 缩写:给出CSCI的缩写 1.2 CSCI 概述 【系统功能概述】 根文档编写界面。 【CSCI层次】 播放器界面,是在视觉外观显示层,方便和用户实现交互。根据功能实现界面。 1.3 文档概述 【用途】 本CSCI详细说明书用于描述浮云播放器项目CSCI-外观的详细设计方

案,本说明书以《系统需求规格说明书》和《系统设计说明书》作为依据,本说明书是代码实现的依据,也作为单元测试的重要依据。本概要设计说明书的阅读对象为:开发工程师,测试工程师,CM工程师,QA工程师,MA工程师。。 【内容】 本文档的主题内容如下: 1.主要框架 2.menu菜单 3.皮肤 描述CSCI的功能和作用; 2引用的文档 按下列格式列出本文档引用到的所有文档。(《系统需求规格说明书》和《系统设计说明书》) 【序号】【文档编号】【文档名称】 3 (CSCI界面细设计) 3.1 (CSCI界面结构)

多媒体播放器的设计与实现

《多媒体技术》 课程论文 题目:基于MFC的多媒体播放器的设计与实现专业: 班级: 姓名: 学号: 指导老师:

摘要: 本程序是基于MFC集成开发环境,利用ActiveMovie控件实现媒体播放的功能的多媒体播放器。具有打开文件、播放、暂停、全屏、音量调节、静音、快进、快退等基本播放功能。系统开发平台为Windows 7操作系统,程序设计环境采用Visual C++ 6.0。 关键字:MFC,ActiveMovie,多媒体

1.开发工具及相关知识介绍 MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如DevC++其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率。 一个MFC窗口对象是一个C++ CWnd类(或派生类)的实例,是程序直接创建的。在程序执行中它随着窗口类构造函数的调用而生成,随着析构函数的调用而消失。而Windows窗口则是Windows系统的一个内部数据结构的实例,由一个“窗口句柄”标识,Windows系统创建它并给它分配系统资源。Windows窗口在MFC 窗口对象创建之后,由CWnd类的Create成员函数创建,“窗口句柄”保存在窗口对象的m_hWnd成员变量中。Windows窗口可以被一个程序销毁,也可以被用户的动作销毁。

视频播放器通用代码

ASP视频播放器通用代码 1.avi格式 2.mpg格式

音乐播放器毕业设计

摘要 在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于Java Applet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和 Applet的工作原理,最后说明系统需要实现的功能。 音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目的和内涵的,其中隐含了作者的生活体验,思想情怀。一款好的pc音乐播放器不仅能够提供好的音乐播放效果,更能够为用户提供方便的操作。 本设计利用java语言和eclipse 编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。该播放器支持MP3、WAV、MP3和AIFF等音频格式。在开发的过程中采用瀑布模型。第一阶段首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面的测试和系统集成测试。 关键词: JAVA;Eclipse;模块化; Applet;

Abstract In the information,the rapid development of technology today,the multimedia technology is becoming more and more attention.This paper makes comparison of the detail to the current use of more music player.By reading a plurality ofliterature,analysis of some function of music player and consider how to achieve the support more format music files,how to meet the needs of users of the player.This paper mainly introduces the design of a Java based Applet to achieve music player.And the key technologies involved in the system development are discussed and analyzed brieflyintroduces the work principle of Java technology and Applet,finally indicated that the system needs to realize the function. The music is a sound symbolic expressing the mood and thinking. It is the carrier of people's thinking. Music is the purpose and content, which implied the au thor's life experiences and feelings. A good pc music player can not only provide g ood music playing effect, but also provide users with convenient operation. The player is using java language and eclipse editing tools. Giving a detailed s ystem design process, part of the interface map and run flow chart of the main fun ction, this article discussed in detail on problems and solution method in the devel opment process. The music player set to play, pause, stop, fast forward, rewind, a nd the next one, on a volume adjustment functions with one good performance. Th e player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the dev elopment process is Waterfall model. The first phase is the project of comprehensi ve and careful needs analysis, accurately making the project schedule and clearin g each stage of the task. The second phase of the project is sub-module coding. T he third stage, the project testing and system integration testing. key words:JAVA ;Eclipse;Modularization; Applet;

视频播放器课程设计报告

课程设计实验报告 题目:基于andriod平台的视频播放器设计院(系):电子与信息工程系 专业: 团队成员: : : 辅导老师: 2011 年 12 月 29 日

摘要 一.Andriod平台 1.谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 2.Android 是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是”应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验 二.Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程

语言起源于

Sun公司的一个叫“Green”的项目,目的是开发嵌入家用电器的分布式系统,使电器更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java 1.2版本是一个重要的版本,基于该版本,Sun将Java技术分成J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 三.Eclipse Eclipse的基础是富客户机平台(Rich Client Platform,即RCP)。 RCP包括下列组件: ?核心平台(启动Eclipse,运行插件) ?标准集束框架(OSGi:Open Service Gateway initiative) ?可移植构件工具包(SWT:Eclipse’s Standard Widget Toolkit) ? JFace(文件缓冲,文本处理,文本编辑器) Eclipse采用的技术是IBM公司开发的SWT,这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。

使用KMPlayer播放最普通的高清视频

使用KMPlayer播放最普通的高清视频 KMPlayer是从linux平台移植过来的一款高效能视频播放软件,该软件可以通过各种扩展插件支持不同的视频格式。 KMPlayer 下载KMPlayer安装完成后,按照以下步骤进行基本设置,可能会存在差异,请根据自己的情况进行调整。 步骤一:在解码器使用选项里面,设置成总是使用(强烈推荐)

设置成总是使用 步骤二:取消所有默认的内置解码器,使用我们自定义解码器。 步骤三:搜索添加外部解码器,并针对不同格式进行设置。

步骤四:搜索并添加分离器,并根据不同格式进行设置。

根据以上设置完成后,对于普通的高清视频就可以正常播放了,如果发现部分视频无法正常播放的,可以根据该视频格式选择不同的解码器或者分离器进行尝试。 这里强调下高清视频对PC的一些简单要求,其实,对于普通的高清视频,现流行的电脑都可以轻松应付,比如笔者使用的COMPAQ 3169AU笔记本,配置并不是非常高端,不过观看普通的高清视频绰绰有余,大家购买PC的时候,不要盲目的追求最高配置,只要结合自己的使用情况,有选择性的购买即可。 普通高清视频对电脑配置要求不是很高 打开H264硬件加速 KMPlayer初始安装后,播放H264视频时,使用的外部视频解码器为系统默认的解码器,这样,我们就无法正确开启硬件加速功能。想要打开硬件加速功能,需要对软件进行行下相关设置。

H264默认设置 这时,我们选择搜索外部解码器按钮,然后在弹出的界面先选择搜索并添加按钮,这样,系统安装的外部解码器就自动添加进来了。

搜索并添加外部解码器 完成后,返回外部视频解码器设置页面,选择H264的视频解码器为直接使用PowerDVD的H.264解码器就可以直接开启硬件加速。

基于Android的多功能视频播放器的系统设计

文档编号:基于Android的多功能视频播放器 系统设计说明书 目录 1引言 4 1.1目的 4 1.2适用范围 4 2系统架构 5 2.1硬件架构 5 2.2软件架构 9 3完整功能结构图 11 4系统数据库设计 11 4.1 E-R图设计 11 4.2字段设计 11 4.2.1本地视频文件记录表 11

4.2.2历史播放文件表 12 4.2.3 收藏文件表 12 5视频播放器部署图 13 6 系统需求 13 6.1系统界面需求 13 6.2系统性能需求 13 6.1系统开发环境需求 14 7视频播放器流程图 14 1引言 1.1目的 本文档是多通道同步数字记录仪升级换代项目的系统设计文档。从系统的高层角度对系统的硬件架构、软件架构、网络架构、系统部署、系统运行方式进行设计,为下一步各个模块的详细设计提供系统级的视图。 1.2适用范围 本文用于描述多通道同步数字记录仪升级换代项目的系统设计,给出系统的主要架构与配置项,对相关运行、数据、用户接口、容错与复用和重要模块进行分

析,作为项目后续详细设计与开发实现的依据。本说明书的阅读对象为:跟我们同龄的有一定基础的大学生,以及相关的项目开发人员等等。 2系统架构 2.1硬件架构 2.1.1 JDK安装 JDK是Java语言的原创者推出的原始开发环境。采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。在Windows上安装JDK非常简单,访问Oracle官方网站下载页面,网址为,也可从其他网站下载。下载完成后,双击运行JDK安装程序并根据提示设定环境变量。 2.1.2 Android SDK安装以及系统设置 下载好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的完全路径加入其中。

基于Android的视频播放器的设计与实现

基于Android的视频播放器的设计与实现

基于Android的视频播放器的设计与实现 中文摘要 如今,随着基于Android操作系统的智能手机的广泛应用,视频播放器已成为智能手机的一个必不可少的程序,广大用户迫切需要一个贴近用户、方便用户、个性化的视频播放器。因此,设计一个基于android手机的多功能播放器,具有重要的实际意义。 本次毕业设计主要使用JDK + Eclipse + Android-SDK-Windows工具进行开发,使用的编程语言是Java语言。该程序主要由4个不同Activity来实现,每个Activity实现相应的功能模块,能够有效满足Android手机用户在视频播放中的常见需求。 本论文详细介绍了播放器程序的设计思路、设计方案、系统结构和项目工程结构,对系统的可行性与需求性进行了详细的分析,阐述了系统各个模块功能的设计与实现。对程序主要的Activity都进行了详细的介绍和分析,包括对其使用的布局文件的具体介绍,以及各个控件的作用。在最后进行了程序测试,对每一个实现的模块功能都做了测试,并且记录了大量截图用来展示测试结果,以观察程序应有的功能是否正常运行,以及发现程序中可能存在的问题。所开发的程序界面比较友好,操作相对容易,达到设计要求。 关键词:安卓;视频播放;Activity;Mediaplayer

The Design and Implementation of Video Player Based on Android ABSTRACT Now, with the wide application of smart phone based on the Android operating system, video player has become the essential application of smart phone. Most of consumers urgently require a personalized video player which is close to user and facilitate user. Therefore, the design of a multifunctional player based on android mobile phones has an important practical significance. The project design is developed by using JDK, Eclipse, and Android-SDK-Windows tools. The programming language is Java. The program consists of four different Activities and each Activity achieves the corresponding functional modules which can effectively satisfy the common requirements for playing video on Android mobile phones. This paper introduced the design ideas, design scheme, system architecture and project engineering structures of video player. The feasibility and requirements of system were analyzed in detail. The system function and each module were explained. The main Activity of the program are described and analyzed in detail including the using layout file, as well as the role of each control. Finally, I made the test for the program including the functions of each implemented modules. In order to observe whether the program should function properly and find the problems that may exist in the program, many screenshots were saved to demonstrate the test results. The developed program has a friendly interface and can be operated relatively easy, which has achieved the design requirement. KEY WORDS: Android; Video Play; Activity; Mediaplayer

最简单的视频播放器

#include #pragma comment(lib,"strmbasd.lib") #pragma comment(lib,"quartz.lib"); void main() { IGraphBuilder *pGraph = NULL; IMediaControl *pControl = NULL; //控制数据流的播放和停止等操作 IMediaEvent *pEvent = NULL; //捕获图像滤镜的事件 //初始化COM库 HRESULT hr=CoInitialize(NULL); if (FAILED(hr)) { return; } //创建滤镜管理器(hr为它的句柄) hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void**)&pGra ph); if (FAILED(hr)) { return; } //IID_IMediaControl hr = pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl); hr = pGraph->QueryInterface(IID_IMediaEvent,(void**)&pEvent); hr = pGraph->RenderFile(L"c://1.avi",NULL); if (SUCCEEDED(hr)) { hr = pControl->Run(); if (SUCCEEDED(hr)) { long evCode; pEvent->WaitForCompletion(INFINITE,&evCode); } }

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

基于嵌入式技术的视频媒体播放器的设计

本科毕业论文 题目:基于嵌入式技术的 视频媒体播放器的设计 学院: 班级: 姓名:王帅 指导教师:李怀繁职称:副教授 完成日期:2014 年6月 5 日

基于嵌入式技术的视频媒体播放器的设计 摘要:随着用户需求的日趋多样化,单一功能的视频媒体播放器功能已经渐渐强大起来。嵌入式设备以其强大的功能、低廉的价格等优点成为了开发视频媒体播放器首选设备。本文设计的播放器将视频媒体技术与嵌入式技术完美结合起来,不仅实现了音视频的播放,而且采用mini2440开发板,搭载Linux内核,使其具有强大的潜力,可开发实现多种功能,满足用户多变的需求。该视频媒体播放器支持多种格式的音、视频文件的播放,可实现媒体文件播放的暂停、音量调节等播放功能,并且由于其应用于Linux 内核之上,比其他播放器有更广阔的发展空间。 关键词:mini2440开发板;视频媒体播放器;Linux内核;嵌入式技术;

目录 1.引言 (1) 1.1 研究背景与目的 (1) 1.2 研究方法 (2) 2. 系统分析 (3) 2.1 概要分析 (3) 2.2 开发环境 (3) 3. 系统设计 (4) 3.1 构建基本环境 (4) 3.2 配置相关服务器 (5) 3.3 移植应用程序 (6) 4. 系统实现 (8) 4.1 运行流程 (8) 5 系统测试 (9) 5.1 测试流程 (9) 5.2 功能测试 (10) 结论 (13) 参考文献 (14) 附录 (16)

1引言 1.1 研究背景与目的 在现代信息化社会,视频媒体在信息产业和媒体技术的发展和在人类社会的应用等方面产生的影响和作用越来越明显,且越来越重要[1]。视频媒体技术的发展和应用,使得文化教育、科技、娱乐等诸多行业的飞速发展与相互渗透,同时,正在逐步改变着整个人类社会的生活方式与工作结构。不言而喻,媒体产业的产生和发展,不仅会引发计算机工业的革命,而且也将会推动人类社会发生巨大变革。 嵌入式操作系统是计算机技术发展到一定阶段的中间产物,它无法与功能全面的计算机操作系统相比,但却凭借自身体积小、功能专用、稳定性高、价格低廉等优点正迅猛发展。目前,具有知识产权保护的嵌入式系统在中国逐渐形成了一个热门领域,嵌入式系统的稳步发展使嵌入式软件的研发的重要性与日俱增。优秀的平台需要配合相应的应用才能充分发挥最大潜力,所以,视频媒体技术的嵌入式发展已成为视频媒体技术发展的必然。 近年来,随着嵌入式技术的飞速发展,越来越多的企业开始开发嵌入式软件,并取得了一定的成果,开发了许多产品,其中包括了一些类型的嵌入式视频播放器。但是却没有一款产品能够垄断嵌入式视频播放器的市场。究其原因,现今的视频媒体播放器大部分是由计算机上通用的媒体播放器移植而来的,忽视了嵌入式设备的特殊性,其播放器在实用功能、视频显示和操作方便上不能媲美于计算机,而且也没有发挥嵌入式系统的潜力[2]。 在世界的其他国家,对视频媒体技术的研究和媒体产业的发展非常重视,投入了大量的人力、物力,开发出了一些体积小、易用性好的媒体播放器,并且产品不断更新换代,发展上升空间巨大,功能日趋完善。 随着计算机的发展和影视行业以及数据处理等技术的日趋成熟,为视频媒体技术的起步奠定了坚实的基础,并为各个行业的相互渗透与大融合提供了可靠保证。同时,视频媒体是人类可直接接受的最丰富和最全面的信息来源,对于推动当今社会的发展和文明的进步起着重要作用,视频媒体技术的需求与日俱增。 在日益信息化的现代社会中,计算机和网络已经渗透了我们日常生活的方方面面。作为一个现实,一个新的嵌入式设备中各种应用的数量正在稳步上升,人们可以有各种嵌入式设备,甚至一个人有多种,如手机,MP3或智能电器[3],嵌入式技术正在飞速地发展。 将嵌入式技术与视频媒体技术的结合,将使得二者的功能更加强大。一种具有体

视频播放器功能说明书

Doc Name: 手机流媒体播放器插件项目需求范围 说明:以下只是一个需求范围框架声明,可补充修正. 需求模型呈现: 用户通过手机流媒体播放器插件连接到流媒体服务器,可以在线点播3gp格式的电影,动画等资源. 平台组成 Server端: 标准H.264/AMR 的流媒体服务器 Client端:定制的手机流媒体播放器插件 说明:用户通过专有的WAP浏览器导航选择流媒体播放内容,播放时调用(启动)定制的手机流媒体播放器插件播放,播放完毕返回到WAP浏览器,即:WAP Browser + Player Plugins 形式. 平台架构模型:C/S 架构 通信协议:RTSP, RTP/RTCP协议 流媒体文件格式: 第一阶段:.3GP 第二阶段:.MP4/.AVI/.RM/.WMV/.RMVB/.3GP2 流媒体视频编解码算法: 第一阶段:H.264 (=MPEG-4 Part 10=ISO/IEC 14496-10=MPEG-4 AVC) 流媒体音频编解码算法: 第一阶段:(2.75G) 1) AMR-NB 2) AAC 需要支持的手机平台: 智能手机: Symbian v3/v5,WM 5.x/6.x, Android,OPhone,iPhone, … 第一阶段:Symbian v2/v3/v5,WM 5.x/6.x 接入网定位: 前期支持2G(GRPS),2.75G(EDGE),后期支持3G. 即面向2.5G,2.75G和3G用户. (因为3G,4G属于接入网范围,本质上改进的只是空中接口的传输效率,简单说就是空中接口可以用更大的带宽传输数据,这个和业务网的应用,例如:语音业务,数据业务、手机应用软件没有很本质上的直接关系).

基于android平台的视频播放器设计

课程设计报告 课程名称《网络程序设计》课程设计 课题名称网络注册登录器 专业网络工程 班级1102 学号01 姓名刘龙飞 指导教师李远辉 2014年9 月12 日

湖南工程学院 课程设计任务书 课程名称网络程序设计 课题网络注册登录器 专业班级网络工程1102 学生姓名刘龙飞 学号01 指导老师李远辉 审批 任务书下达日期2014 年9 月1 日 任务完成日期2014 年9 月12 日

一、课程设计概述 1.1 课程设计题目 一个基于Android平台的网络程序实现注册,登录 1.2 课程设计要求 (1)能正确连接外部网络 (2) 能实现注册 (3) 能实现正确登录 (4) 能够在手机上使用该系统 二、硬件平台搭建 2.1 JDK安装 JDK是Java语言的原创者推出的原始开发环境。采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。在Windows上安装JDK非常简单,访问Oracle官方网站下载页面,网址为https://www.doczj.com/doc/674222677.html,/technetwork/indexes/downloads/index.html,也可从其他网站下载。下载完成后,双击运行JDK安装程序并根据提示设定环境变量。 2.2 Android SDK安装以及系统设置 下载好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文件,手工配置。适合网络不是很好,下载速度慢的情况下。 2.3Eclipse安装以及ADT工具的安装 下载Eclipse安装包后,无需安装,只需解压缩,点击“eclipse.exe”文件即可运行。 Android为Eclipse定制了一个插件,即Android Develpoment Tools(ADT),目的是为用户提供一个强大的综合环境用于开发Android应用程序。ADT扩展了

相关主题
文本预览