在线视频播放器(共12篇)
在线视频播放器 篇1
1前述
我国从2007年开始发放3G牌照, 手机多媒体终端的用户数量将会伴随着终端开发技术和3G网络技术的发展而逐渐庞大。对于运营商来说, 市场规模将明显增大, 而产品运营、业务扩展、市场营销将会是近3年移动流媒体市场的核心竞争力。
据艾瑞咨询主办的“2006手机网民看3G”的互联网调查中统计, 视听娱乐将成为3G应用普及后智能手机用户最期待的无线业务。手机视频的巨大市场前景是包括运营商在内的所有企业都不可小视的。
类似优酷、 土豆、爱 奇艺等国 内视频巨 头非常看 好手机视频 终端 , 因为i Phone手机非常 普及 , 用户群体 庞大 ,最重要的是手机能随时随地地拍照、录视频, 而且能随时随地把拍摄 的视频上 传到视频 网站上去 , 非常方便 ; 另外iPhone多媒体客户端的播放内容可以直接从电视台、影视公司等多媒体提供商那里获得, 资源极其丰富。对用 户而言 ,手机视频播放客户端将成为人们非常重要的娱乐方式。手机往视频方向发展也是势不可挡的, 而对手机视频的需求也是非常大的。
2体系结构及其特性
1、i Phone SDK架构
i Phone SDK是由苹果公司提供的i Phone应用开发包 , 整个SDK包括了界面开发工具、集成开发工具、框架工具、编译器、 分析工具 、开发样 本和多个i Phone、i Pad、i Pod模拟器。如图1所示。
(1) Core OS 层
很多人听说过IOS系统是基于UNIX的。而Core OS层就是用Free BSD与Mach所改写的Darwin, Core OS是开源、符合POSIX标准的一个Unix内核。这一层包含并且提供了整个iPhone OS的基础功 能 , 如 : 硬件驱动 、内存管 理、程序 管理、线程管理、文件系统、网络接口,以及标准输入输出等,所有这些功能都是通过C语言的API接口来提供。此外, 这一层是最具有UNIX色彩的, 如果你需要把UNIX上所开发的程序移植到i Phone上, 多半都会使用到Core OS的API接口。
(2) Core Services 层
Core Services层基于Core OS基础之上 , 它提供了更多更丰富的功能, 它包含了Foundation.Framework和Core Foundation.Framework两个部分 , 并且 , 它提供了一系列处理字串、排列、 组合、日 历、时间 等基本功 能 , 所以叫Foundation。Core Fundation是属于C语言的API接口 , 而Foundation是属于Objective-C的API接口。另外Core servieces还提供了其他的常用功能, 比如: Security、Core Location、SQLite、Address Book. 其中Security是用来处理认证 , 密码管理 , 按安全性管理的; Core Location是用来处理GPS定位和地理信息处理; SQLLite是小型的、轻量级的本地数据库; 而Address Boo是用来处理电话薄资料的。
(3) Media 层
Media层提供了图片、音乐、 影片等多媒体功能。与音乐对应的是Core Audio和Open AL, Media Player实现了影片的播放 ; 图像处理 方面分为2D图像和3D图像 , 2D图像由Quartz2D来支持 , 3D图像则是用Opengl ES来支持 ; 最后用Core Animation来对动画提供了强大支持。
(4) Cocoa Touch 层
Cocoa Touch是Objective-C的API接口 , 其中最核心的部分是UIKit.Framework,应用程序界面上的各种组件, 全是由它来提供呈现的, 除此之外它还负责处理屏幕上的多点触摸事件、文字的输出、图片网页的显示、相机或文件的存取、 以及加速感应的部分等。
2开发环境
(1) 软件环境
操作系统: Mac OS X 10.6.4;
IDE: Xcode 5.0;
SDK版本 : iphone SDK 7.1;
模拟器: iphone 5s、ipad air;
(2) 硬件环境
CPU: 至少双核CPU, 1.2GHz以上主频 ;
内存: 至少1GB;
硬盘: 至少60GB;
网络: 10M/100M网卡。
3需求分析
3.1可行性
3.1.1经济
本项目的开发全部采用苹果公司的产品, 包括操作系统、开发IDE、测试用模拟器、真实i Phone手机。这些软硬件设备虽然价格不菲但对于专业苹果应用开发人员来说都是必须有的, 并且, 这些软硬件都为一次性投入, 在以后开发苹果应用时也可以继续采用这一套软硬件, 不存在人力物力的过度浪费现象。所以开发一款基于i OS的音乐播放器在经济方面是可行的。
3.1.2技术
苹果公司的产品在多媒体应用方面下了极大的功夫, 因此也提供一整套非常强大的多媒体开发框架。在程序设计语言上采用Object-C足够, 在UI布局方面采用.xib或storyboard等布局文件就可以设计出使用比较友好的UI界面, 媒体流的获取采用HTTP或是UDP协议获取网络视频资源; 在媒体播放方面采 用Iphone SDK 7.1中Core Audio和Open AL, MediaPlayer实现了影片的播放。从而分析得出开发这款音乐播放器在技术方面是可行的。
所以, 基于i OS的音乐播放器的开发是可行的。
3.2功能
当用户进入播放列表, 在本地视频文件或网络在线视频文件列表中, 选择播放, 即可观看视频, 切入到横屏模式可进入全屏播放。
3.3性能需求
(1) 对i Phone支持MP4/3GP/AVC/AVI/MPEG-4等格式的
视频文件进行播放, 分别对来源于本地和网络的视频文件进行处理, 利用横竖屏的灵活切换, 实现全屏播放, 使播放效果更为显著。
(2) 支持MP3音频文件的播放 , 从本地和网络列表中读取音乐播放列表, 根据歌曲和歌手名称从3G网络上搜索歌词, 支持歌词同步; 放完一首歌可自动播放下一首, 支持循环播放。
(3) 支持网络MP3流媒体的广播格式 , 简朴大方的用户界面, 增加文字流动效果, 更具观赏性。如果当前电台流出现问题, 可使用向前和向后来对同一站点的不同端口频段进行调整。
(4) 对本地文件媒体文件进行管理 , 刷新功能重新搜索本机上所有的媒体文件, 删除功能删除不必的媒体文件, 选中文件后可根据不同的媒体格式选择播放器, 支持本地蓝牙传输。
(5) 在线音音频列表按照用户输入的关键字搜索歌曲 ,支持在线播放、音乐文件下载。
(6) 从网站shoutcast上获取网络电台 , 支持电台搜索功能, 用户点击可在线收听。
(7) 通过土豆网站、56视频网站获取相应的视频信息 ,对视频文件进行分类管理, 用户进入后只需点击即可轻松地观看和下载, 支持视频搜索, 根据用户输入的关键字, 搜索网站中的视频, 支持翻页功能;利用六间房网站对i Phone手机平台的友好支持界面, 采用手机Web打开网页, 支持在线观看、收藏、搜索和访问友请链接网站等多种功能。
(8) 提供媒体文件下截 , 支持断点续传、文件播放、 删除等功能。
(9) 更多设置模块包括蓝牙管理、用户手册、 背景设置、动画效果设置等后台管理功能。
(10) 网络环境 : 播放网络视频 , 要求网络带宽流畅 , 信号好。
3.4关键技术
(1) 播放视频用到的API主要使用的是Media Player框架中的MPMovie Player Controller类和MPVolume View类。
(2) 链接网络资源获得歌词 , 进行分割排序比较 , 使用NSTimer来监测播放的时间 , 实现歌词同步。
(3) 广播播放器采用Code Morphic公司的Co Mo Radio开源软件底层的部分功能实现广播流的播放, 该开源软件提供的Cm Audio Player用于管理和播放网络广播。
( 4) 结合NSURLRequest类和UIWeb View控件 , 实现手机网页浏览。
(5) 下载管理采用ASIHTTPRequest实现网络连接 , 加入到network Array下载队列实现多个网络资源同时下载。
(6) 创建GKPeer Picker Controller类的实例 对及相关 的接口, 把大的媒体文件分割成小的模块, 来实现蓝牙传输。
4视频播放器模块
4.1视频播放器模块描述
视频播放 器模块是 对i Phone支持MP4/3GP/AVC/AVIMPEG-4等格式的视频文件进行播放 , 分别对来源于本地和网络的视频文件进行处理, 利用重力感应技术, 实现横屏和竖屏的灵活切换, 使播放效果更为显著。
4.2算法实现
播放视频用到的API主要使用的是Media Player框架, 该框架包括 两个类 : MPMovie Player Controller类和MPVolume View。它们用于管理整个视频的播放, 只需要提供视频文件的URL, 并调用play方法播放视频即可。视频文件支持如下:
( 1) H.264视频 , 高达1.5Mbit/s, 640×480像素 , 每秒30帧 , Low-Complexity版本的H.264 Baseline Profile采用AAC-LC音频, 高达160Kbit/s, 480k Hz, 立体声音频为.m4v、 .mp4和.mov文件格式。
( 2) H.264视频 , 高达2.5Mbit/s, 640×480像素 , 每秒30帧 , Baseline Profile高达Level 3.0采用AAC-LC音频 , 高达160Kbit/s, 480k Hz, 立体声音频为.m4v、 .mp4和.mov文件格式。
(3) MPEG-4视频 , 高达2.5Mbit/s, 640×480像素 , 每秒30帧 , Low -Complexity采用AAC -LC音频 , 高达160Kbit/s,480k Hz, 立体声音频为.m4v、 .mp4和.mov文件格式。
程序代码如下:
(1) 在项目中加入Media Player框架 , 并引入Media Player/Media Player.h头文件 :
( 2) 在View Controller.h文件里创 建一个MPMovie PlayerController指针 :
(3) 获取视频文件存储路径。由于从播放列表View Controller中采用委托传递数据操作过于繁琐 , 在本项目中各个模块之间进行数据传递基本上都使用文件读取用为中介来实现数据传递;
(4) 初始化一个网络视频播放player
(5) 初始化一个本地视频播放player
(6) player操作方法 :
播放: [self.movie_Player play] ;
暂停: [self.movie_Player pause] ;
停止: [self.movie_Player stop] ;
(7) 通过消息中心NSNotification Center时刻监视视频的播放状态:
4.3逻辑流程
视频播放模块的流程图如图2所示。
5结语
项目用户体验, UI设计良好, 触控反应灵敏, 用户体验良好; 内容方面, 功能较复杂, 突破了App Store中现有媒体播放类软件单一媒体资源的局限性, 在后续的几篇文章中将介绍在项目中集成几大主流视频、音频资源, 如百度音乐盒、网络广播、土豆视频等。由此本项目将具有较高的实用性及商业价值。
在线视频播放器 篇2
课型:新授课
课时:1课时
学习者情况分析:学生学习了如何播放和录制数字化声音,能够进行简单的声音文件的编辑,但对于
有些软件的使用操作不很熟练。
教学目标:
知识与技能:
1、了解常见的数字化视频文件类型
2、学会播放不同类型的视频文件
3、能够在线欣赏数字化视频
过程与方法:
通过学生参与,感受数字化视频的特色和魅力。
情感态度与价值观:
让学生真正体验多媒体技术的发展给我们的学习、生活带来的日新月异的变化,从而激发学生学习信息技术的积极性。
通过自主学习、小组合作学习,增强学生积极探索、互助学习的意识和培养他们的探究能力。重点难点:重点是会选择适当的工具,播放各种数字化视频文件
难点是在因特网上在线播放视频
课前准备:下载必备的文件或软件
教学反思:
1、各种播放软件都提供了播放控制按钮,用于在播放过程中对视频的快进、快退、停止、暂停、伴音音
量和声道控制等,注意教学生学会使用。
2、注意,网上经常可以看到许多视频浏览广告,其中有许多不健康的网站或网络陷阱,尽量不要浏览这
类视频。
数字化视频播放(学案)
第一环节:视频播放控制
1、必学:常见视频文件的播放
(1)观察电脑中的数字化视频文件,可知其常见类型有()、()、()和()等。
(2)你使用的播放器是(),你还知道的播放器有()、()和()。(3)你在播放过程中还遇到了什么问题?()()2、拓展:
(使用超级解霸播放VCD,用快进功能选择自己喜爱的节目。)3、探究:
尝试播放DVD盘片,体验DVD格式视频的画面质量和伴音效果。第二环节:在线收看视频节目
1、必学:在线收看视频节目
(1)你选择的视频节目播放网站是();了解这些站点的途径是()
(2)你使用的播放器为(),你收看的视频内容是(),播放效果()。
2、拓展:
视频娱乐 韩流播放器我最酷 篇3
■ 软件名片
软件名称:KMPlayer 2.9.3.1428 Beta
软件大小:17265KB
软件类别:国外软件/视频播放/免费版
软件语言:多国语言
运行环境:Win9x/Me/NT/2000/XP/2003
下载地址:http://www.onlinedown.net/
soft/57112.htm
用KMplayer播放镜像文件
网络上的视频资源很丰富,但不少资源由于文件多,上传者往往是制作成镜像文件后共享的。下载下来的是镜像文件,所以每次欣赏时,除了得安装虚拟光驱软件,还要进行导入、打开等一系列操作,比较繁琐。
有了KMplayer,你就再也没有这样的烦恼了。因为它可以在不借助第三方工具的情况下,直接就能播放镜像文件形式的视频。
启动程序,在其主界面单击右键,选择“打开文件”。在“打开”窗口里“文件类型”的下拉列表中,可以看到“所有文件(*.*)”。找到一个镜像文件并打开,我们就可以开始尽情观赏了。
让KMPlayer成为PPlive播放器
PPlive是一款网络电视软件,我们还可以通过设置让KMPlayer成为PPlive的播放器。首先在电脑上下载并安装好PPlive,运行PPlive程序,随后右键单击PPlive的系统托盘图标,弹出右键菜单,单击右键菜单中的“参数设置”命令,弹出“参数设置”对话框。在“播放设置”项下将Windows Media Player和Real player的播放路径全部选择为Kmplayer播放器的路径,单击“确定”,这样KMPlayer就成为PPLive默认的外部播放器了。
随后打开PPlive界面,在此选择自己想要收看的电视节目后,在PPlive界面中单击右键,弹出一个右键菜单,在此选择“在默认的播放器中播放”命令,这样就可以在KMPlay中播放了。
用KMPlayer录制网络电视节目
使用KMPlayer作为PPlive的内置播放器播放PPLive节目时,如果我们遇到精彩的电视节目,还可以将其录制下来,留待以后收看。录制时,在KMPlayer界面上单击右键,在弹出的右键菜单中选择“捕获→捕获视频文件”命令,打开“捕获为视频”对话框,在“文件名”项中选择捕获文件保存的路径及文件名称,随后在下面的“视频”项中点选“直接复制视频流”,在“音频”中选择“直接复制音频流”,单击“开始”按钮,这样就一边播放电视节目一边开始录制视频文件了,录制后的视频文件格式为AVI,该文件可以使用KMPlayer程序直接播放。
温馨提示
使用上面的方法,我们也可以录制其他网络电视软件中的节目,也可以录制该程序本身播放的视频节目。除此之外,KMPlayer还提供了音频文件录制和视频截取等功能,读者朋友们可以自己分别尝试一下。
用KMPlayer轻松看网络电视节目
在KMPlayer中提供了一个网络电视网址管理功能,将自己喜欢的网址导入到系统中,以后就可以非常方便地打开。在KMPlayer的莫妮卡版本中程序提供了400多电视网站,该网站都保存在KMPlayer安装目录下面一个名为“URLList.txt”的文件中。查看时,我们可以直接到目录下用记事本打开该文件。
将电视节目导入到KMPlayer后,我们就可以方便地收看了,收看时,在右键菜单中选择“打开→打开URL”命令,弹出“打开URL”对话框,在此我们可以看到很多网络电视网址,并且按类别进行分类。选中某个电视地址后,单击下面的“打开”按钮即可在KMPlayer中播放该频道的电视节目了。
随心所欲地进行视频效果调节
在KMPlayer中播放视频效果已经很清晰了,不过为了满足你对高清晰视频效果的需求,程序还提供了一个视频增强功能,可以调节视频的色调、亮度,并且能调节视频播放速度。调节时,在程序的右键菜单中选择“控制面板”,打开“控制面板”界面,在此可以对均衡器、视频、音频等属性进行设置。
在该界面下的蓝色小正方形表示色调设置,点选后,在该界面中提供了色调控制(colors)、视频效果(effects)、屏幕控制(screen)三个选项。在“色调控制”中我们可以对视频亮度、色调、对比度进行设置;在“视频效果”中系统提供了多种视频模式,我们可根据需要选择各种视频效果;在“屏幕控制”项中我们可以设置视频显示的尺寸,如16:9、4:3等。
过滤掉人声只留背景音乐
我们在用KMPlayer听音乐时,如果觉得某首歌曲的背景音乐很好听,可以利用其消除人声功能,让KMPlayer只为你播放背景音乐。操作方法:打开KMPlayer,在播放界面上单击鼠标右键并选择“音频→其他滤镜→消除人声”命令即可。
连续截屏实现自动化
利用KMPlayer内含的截屏功能,我们可以轻而易举地对AVI等格式影片进行连续的图像截屏处理。具体步骤如下:
当KMPlayer正在播放影片时,按下“Ctrl+G”组合键,在弹出的“帧模式”窗口中,我们首先在“捕捉到”一栏中设定截屏图片的保存位置,然后在“要捕捉的数量”栏下选择具体的图片数量,再设置好要捕获的帧和捕获的尺寸,设定完毕后,单击“开始”按钮即可开始截屏了。
手机视频播放器的开发 篇4
作为任何一个拥有多媒体功能手机的读者而言, 如果能够自主开发出一款定制的手机视频播放器是多么令人有成就感的事情。如果说仅仅是在WTK模拟器上, 使用MMAPI (移动媒体API, JSR135) 就可以做出一个简单的视频播放器来, 然而要真正应用到实机却不是那么一帆风顺的事情, 在下文中逐步向读者说明。图1是该款视频播放器在WTK模拟器和Nokia5310实机上的运行界面:
该款播放器在实机上支持3gp、mp4、wmv等常见视频媒体类型以及gif动画。
2 功能分析
作为一款实用的手机视频播放器, 不仅要考虑界面的个性化, 而且还要考虑较高的播放效率和手机厂商对视频媒体类型的支持, 归纳为以下3个方面:
(1) 实现播放的基本功能。包括播放控制、音量调节、扩展卡资源读取支持等。
(2) 流畅的播放效果。本案例中采用播放池 (Player Pool) 策略, 这一策略使播放过程更为流畅。造成播放停滞的原因主要有两个方面:一方面基于MIDlet的安全考虑, 每当读取本地文件时手机系统都要求进行手动确认, 这样就会间断播放过程。另外一方面每次对音乐文件的播放预处理也会造成一定的播放间隔。
(3) 完全满足手机厂商所支持的视频媒体类型, 支持尽可能多的视频媒体类型。本案例中采用的是系统自动匹配的策略, 即由手机系统本身来识别播放视频类型。
以上的要求似乎比较简单, 但是由于模拟环境和实机环境的差异, 在实际开发中总会遇到一些小的问题, 接下来就和读者朋友们分享开发手机视频播放器的一些经验和技巧。
3 设计分析
3.1 PlayerMIDlet
主MIDlet也是整个程序入口, 程序启动时显示播放列表面板。
3.2 VideoPanel
播放列表面板, 为程序主界面, 负责播放列表和对象池管理。
3.3 PoolHelper
对象池帮助类, 负责生成播放对象池。
3.4 PlayCanvas
播放布, 用来装载媒体播放。
3.5 AudioSettingPanel
音量控制面板, 实现对播放过程的音量控制。
另外, 视频播放器工程还引入了文件选取模块, 用于生成播放文件列表。图2是该工程。
4 实现过程
4.1 PlayerMIDlet类
PlayerMIDlet仅仅提供了MIDlet框架, 在启动界面创建视频播放面板:
4.2 VideoPanel类
视频播放面板类主要负责播放列表和对象池管理。表1是视频播放面板类的主要成员。
(1) 文件选取模块的调用
视频播放面板的“添加播放列表”菜单调用文件选取类实例来生成播放列表, 同时生成播放项目的播放和音量控制对象, 并提供播放入口菜单:
以上代码中, 主模块通过提供finishAddList方法来获取文件选取模块的返回。当选取完毕后, 对选取项目还要进行重复性判断, 如果存在重复则提示, 如果不存在则调用对象池帮助类生成该项目的播放和音量控制对象, 同时提供播放入口菜单。图3是在WTK模拟器和Nokia5310实机中开始播放列表的界面。
(2) 播放控制
视频播放面板只提供播放入口方法来启动播放布, 真正的播放控制在播放布类中:
(3) 对象池的管理
对象池的初始化在对象池帮助类完成, 在系统关闭时进行对象池的释放:
以上代码中关闭了所有视频播放器对象, 释放视频播放的所有相关资源。
4.3 PoolHelper类
对象池帮助类, 主要是根据文件选取模块提供的URI来生成播放项目的视频播放和音量控制对象池:
以上代码, 为了避免访问本地资源所造成的资源死锁, 对象池帮助类为线程类。在run函数中通过文件URI创建播放器和音量控制对象, 并插入到对象池 (后进先出) 。
对于视频播放器的创建是整个工程的核心, 也是开发人员比较迷惑的地方。
(1) 视频播放对象的困惑
1) 对视频媒体类型的支持。图4是常见的媒体类型不支持的异常画面。
对于WTK模拟环境 (笔者使用的是WTK2.5.2) , 似乎只支持mpeg类型的视频媒体, 播放mp4, 3gp类型的视频时就会抛出不支持的内容类型的异常。对于手机实机环境, 厂商承诺支持的类型程序都可以支持。在Nokia5310环境中, 可以支持3gp, wmv, mp4等主流视频媒体类型以及gif动画, 反而不支持mpeg类型。
2) 视频播放对方的创建方式。上段代码中并没有使用输入流和媒体内容类型 (content type) 来创建播放器对象, 而是通过视频文件URI自动创建。
使用输入流创建播放器对象存在制约。在模拟器环境下调试发现, 使用输入流创建播放器的方式不适用较大的媒体文件, 否则将抛出内存不足的异常。实机环境下, 往手机上安装文件大小大于一定限制的jar文件时, 会得到一个安装包过大而提示无法安装 (大小限制额度可能因各款手机不同而存在一定差异, 但是这个值应该小于一个常规视频文件的大小) 。图5就是在将一个文件大小为2M的jar文件安装到手机时提示的错误。
使用输入流创建视频播放器对象适用于文件大小较小的视频文件, 这也是J2ME教程中常用的通过Class类的getResourceAsStream的方法在资源中获取文件流来创建播放对对象的方式。
3) 创建视频控制对象的时机。上段代码中并没有在生成播放对象的同时生成视频控制对象, 其主要原因有两点:一方面是视频控制对象需要绑定到播放布 (Canvas) , 当初始化视频控制对象显示模式时, 会产生视频控制对象视图与当前界面重叠的问题。如图6所示。
另外一方面, 视频播放布应该是共享的显示资源, 不可能为每个视频控制器创建播放布。基于这种对应关系, 视频控制器的管理应该纳入播放布的范围。
以上的这些“机关”也正是在本文开头说的仅仅在WTK模拟上写一个简单的播放器是很简单的, 而要在实机上写一款能用的视频播放器却是比较困难的原因。
4.4 PlayCanvas
播放布类是视频播放的核心, 负责播放控制、播放侦听以及视频控制对象的管理。
(1) 播放控制
以上代码中, 播放布类提供了播放、暂停、全屏幕、正常屏幕和音量控制 (如图1所示的播放界面) 。这里并没有提供“完全结束播放” (close方法) 的接口, 因为对于播放“完全结束”会造成播放对象的释放, 必须重新创建播放器对象才能再执行播放行为, 否则在播放对象关闭的状态下调用播放方法会出异常 (详细错误内容可以参见MMAPI参考文档) , 所以只有当系统关闭时才考虑“完全结束播放”。
(2) 视频控制
当选择播放项目进行播放时, 播放布就会获取播放对象的视频控制对象并启动播放:
以上代码中, 播放布通过对象池中的播放对象来获取视频控制对象 (VideoControl) , 并初始化视频控制对象的显示模式和区域大小, 然后调整播放显示位置并开始播放。其中有3个比较重要的地方:
(1) 视频控制对象的模式初始化只能成功调用一次, 如果再次调用会抛出模式已经设置的异常。所以必须对初始化状态进行管理, 避免重复初始化 (上段代码中使用视频状态池videoStatusPool来进行状态管理) 。
(2) 对于部分视频, 例如gif动画, 存在没有音量控制对象的情形, 所以要对音量控制对象进行是否为空的判断, 否则会抛出指针为空的异常。
(3) 为了完整监控播放状态, 必须设置播放布为播放侦听 (PlayerListener) 。
4.5 AudioSettingPanel
音量控制面板由播放布调用, 主要用于提供音量控制的界面, 实现当前播放音量的控制:
以上代码中, 该面板类实现了ItemStateListener, 通过一个Guage来实现音量的控制。实际上, 各款手机所呈现的Guage组件与WTK模拟器显示的是不同的。以图7是Guage在WTK模拟器和Nokia5310实机的运行界面。
通过以上过程可以总结出, 在实现手机视频播放器的过程中要注意以下7个窍门:
(1) 播放控制由播放布类完成, 播放主界面只需要提供开始播放的入口。
(2) 播放布同时要设置为播放侦听, 这样才能对播放状态进行全面的监控。
(3) 在播放控制中并不需要提供“完全结束播放” (close方法) 的接口, 可以通过停止接口来实现播放项目的切换 (被停止的项目可以接着播放) , 否则在播放器关闭的状态下再执行播放操作会抛出播放异常。
(4) 通过文件URI来创建播放器对象, 可以避免使用文件流来创建播放器造成的限制, 同时也可以避免对视频文件类型的管理。
(5) 视频控制对象的获取在播放布初始化中进行, 而不能用对象池进行管理。
(6) 视频控制对象的模式初始化只能有一次, 再次初始会抛出模式已经设置的异常。所以必须进行初始化状态的管理。
(7) 对于gif动画, 其音量控制对象可能为空, 需要对音量控制对象进行是否为空的判断处理。
5 验证环境
本文涉及的开发环境为:JDK版本1.6.0_03, IDE为WTK2.5.2和EditPlus2.3.1;验证环境为WTK2.5.2模拟器和Nokia5310 (配置为MIDP2.1和CLDC1.1) 实机。
除了选择与配置对应的API之外, 由于手机视频播放器涉及到MMAPI和PDA可选包的使用, 所以在工程API设置中还要进行相应的API选择。图8为手机视频播放器工程的API选择。
6 结语
iPad的视频播放格式 篇5
iPad具备优秀的娱乐影音功能。iPad在视频播放功能上保持领先地位,支持了当下流行的1280*720,即720P高清视频,乃至1920*1080全高清。只是苹果公司对视频有严格的限制,不
符合要求的话,甚至无法同步到iPad,这就需要使用专门的iPad视频转换器将视频转换成符合iPad标准的视频,再进行同步播放。
支持视频格式:使用Dock Connector to VGA Adapter,可支持 1024 x 768像素;使用 Apple Component AV Cable 可达到 576p 与 480p,使用 Apple Composite AV Cable 可达到 576i 与 480i。264 视频可达 720p、每秒 30 帧、Main Profile level 3.1,采用 AAC-LC 音频最高 160 Kbps,48kHz,立体声文件格式为 .m4v、.mp4 与 .mov;MPEG-4 视频可达 2.5 Mbps,640 x 480 像素,每秒 30 帧,Simple Profile 采用 AAC-LC 音频,最高 160 Kbps,48kHz,立体声音频采用 .m4v, .mp4 和 .mov 文件格式;Motion JPEG (M-JPEG) 可达 35 Mbps、1280 x 720像素、每秒 30 帧、u-Law音频数据。PCM 立体声音频为 .avi 文件格式。
当视频播放成为陪衬 篇6
双系统的ARCHOS 5
ARCHOS 5现在已经不是简单的播放器了,而是一台采用自开发图形系统和Google的Andreld两套系统的随身电脑。Android是Google推行的一款嵌入式操作系统也就是说在ARCHES 5上面,除了自身系统带有的基础功能以外还带有一套自由度极高的开发系统,网友可以任意添加和修改使用Andro Jd系统的软件,而其网络浏览软件应用等功能已经可以让我们体验到G-Phone的方方面面,而视频播放等功能在定程度上则变成了陪利。
双系统的好处不必多说,除了以前爱可视爱好者的习惯操作以外我们还能及时感受到另外一种开发系统给随身电脑带来的不样感受这点可以说是ARCHES非常有创意的个尝试。
超强的网络能力
拿着ARCHES 5的时候不票让笔者想起几年前的一句网络就是计算机,当时网络还没有普及我们对于网络应用还处于比较初级的位置所以并不能透彻地理解这句话。而今天, 个小巧的ARCHOS 5已经具有强大的网络功能通过WiFi连接,可以在你的无线局域网中搜索到每 台计算机并且浏览播放上面的内容用WiFi接入网络,还可以进行网络浏览除了屏幕偏小这点差异之外,打开网页的全部功能都与电脑浏览相同。因为网络的普及我们更好地将互联网应用加入了每一台设备从而让这些原本单功能的设备具有了越来越强大的应用功能。和现在的各类随身设备样,ARCHES 5也可以自由开发软件,实现更全面强大的功能但是对于那些不太熟悉Android系统的朋友可能在使用上会有些吃力,需要更多的网络和系统知识才能玩得得心应手。
娱乐应用丰富
个人感觉ARCHOS 5更多注重的是娱乐应用ARCHOS 5在基本的操作系统之上增加了不少内置的应用 其中主要的有Deezer网络电台Dailymotion影音服务Twidroid博客客户端eBuddy IM通用及时通讯客户端CraigsPhone虚拟社区等等。几乎囊括了常见的网络娱乐站点和应用,只可惜美中不足之处在于这里面内置的站点和应用绝大多数都是欧美流行的在国内并没有很多用户不过相信随着ARCHOS 5的上市,将会有越来越多国内流行的应用被内置在ARCHOS 5中,随着软件系统的升级覆盖到每 个用户。
音视频播放依旧
作为MP3、MP4播放器的老字号ARCHOS在播放器这领域拥有很高的声望,而这款基于网络功能的ARCHOS 5同样将播放功能发挥得淋漓尽致。现在,网络上通行的视频格式越来越丰富,即使是在电脑上也难得找到个软件能够通吃,而ARCHOS5可以比较自如地播放各种不同压缩的avi文件各种不同的mkv打包格式以及常规MP4播放器都不能处理的real格式等。而在高清领域,因为屏幕的限制,ARCHOS 5提供了对MPEG-4、H.264等不同的高清编解码的支持,实现720P分辨率的播放,而播放效果也绝对可以让普通用户满意。
倚仗强大的网络功能,ARCHOS 5对于存储容量则没有更高的要求,从我们的实际应用感觉上看来,在WiFi(802.11g)的连接下,可以很流畅地播放常规影片而不会有任何“卡”的感觉,但是较为遗憾的是在没有无线网络的环境下,由于不支持3G功能,所以网络功能会彻底失去意义。
保留扩展功能
作为娱乐应用的电子产品,ARCHOS 5还具备很多功能上的扩展,其中内置调频收音机功能就是 个体现,而如果需要更多更丰富的娱乐应用,可以依靠添加配件的万式来实现例如使用DVR底座可以与电视等常规设备连接播放或者录制电视节目,电池端口可以连接扩展电池,获得更长使用时间等。
硬盘产品新选择金士顿SSD固态硬盘
Windows 7引导固态硬盘普及瓜熟蒂落 微软新一代操作系统Windows 7应该是目前IT行业最热门的话题之一。这一操作系统的推出必将掀起硬件行业不小的风波。固态硬盘作为最能适应Windows 7系统的硬件设备之,将当仁不让的成为这一事件的“主角”。在Windows 7系统的运行过程中,固态硬盘的大性能优势就是“流畅度”。固态硬盘读取Windows 7系统的小规模数据的速度提高了100倍,读取视频等大型媒体文件速度则是机械硬盘的两倍。所以,随着Windows 7的到来,固态硬盘也必将成为主流。
金士顿作为全球存储领袖,在不断提升闪存技术的同时,也将为存存储产品的容量发挥到了极致,并且价格却显得更加平民化。因此金士顿扩大了SSD固态硬盘产品线并形成了系列产品针对不同类型客户,以面对用户的不同需求。目前,金士顿的SSD固态硬盘产品拥有E M。V+和V这四大套装系列,分别瞄准高性能企业用户、商务用户电脑玩家和普通个人用户。而999元套装的价格令普通用户也能感受SSD固态硬盘带来的巨大性能提升。
SSD固态硬盘与机械硬盘双剑合璧
当然,固态硬盘所拥有的优势固然多,如性能好能耗低,但其市场的价格还是不低,并且人们对于固态硬盘还需要有更多的了解。在机械硬盘性能低能耗高,但容量大,价格也很便宜的前提下,小编给大家提一个建议:消费者可将SSD固态硬盘与传统硬盘两者结合起来使用,实现高性能和低成本的完美结合。采用混合使用的方式,使用SSD固态硬盘作为系统盘,使用金士顿特别制作的硬盘保护盒,将传统硬盘作为移动硬盘来使用。”将传统硬盘转变为移动硬盘,不仅增加了大容量的存储空间,而且SSD固态硬盘实现您Pc的轻便与快捷的使用特点,绝对是您移动存储的最佳选择。
金士顿分别推出适合笔记本和台式机的SSD固态硬盘系列产品套装,它们轻松将台式机和笔记本升级至固态硬盘,而且还能发挥老硬盘的存储空间优势。金士顿SSD固态硬
盘产品套装的推出,将会为普通用户使用SSD固态硬盘提供最大支持。
对于相机,人们总是希望它具有单反相机的拍摄效果,而外形上却又都希望能有着类似卡片机的轻巧便携·性。如果说这在以前是一个无法实现的美丽梦想的话,那现在也许并不再是痴人说梦的笑话了,因为松下DMC-GF1可按镜头数码相机来了,它在带来专业性的操作手感,全面的拍摄功能和出色的拍摄效果的同时,依然不失可换镜头的灵活性和轻巧迷你的便携性。
灵活性来源于可换镜头
相对于紧凑型数码相机,数码单反的最大优势之一无疑就是镜头的可更换性,而DMC-GF1也是一款可以更换镜头的数码相机,在配套镜头上除了有松下推出的20mm f/1.7的饼干镜头,还可以直接使用松下或奥林巴斯的微型4/3系统的镜头,如松下的14-45mm/F3.5-5.6和45-200mm/F4.0-5.6两款镜头。另外通过转接环DMC-GFl还可以使用数量众多,焦距段各不相同的松下或奥林巴斯的4/3系统的镜头,甚至是徕卡M/R镜头。可更换镜头为有不同拍摄需求的用户提供了较强的灵活性,无论用户是热衷于拍摄宽广宏伟的建筑或名山大川,还是鲜花,昆虫般大小的细微对象,DMC-GF1都有大量的镜头可供选择使用,为用户带来了极大地拍摄性能上的灵活性。
专业相机的操作手感
虽然外形非常紧凑小巧,由于在机身正面右侧设计了凸起的手柄,因此把持时的手感依然出色,用户可以牢固稳定地把持相机,另外在机:身背后的右上角设计了参数拨轮,这是专业数码单反相机的常见设计,它可以在拍摄时让用户可以快速地实现曝光参数的快速调节。机身顶部有一个拍摄模式和驱动模式的组合操作单元,在照相功能上DMC-GF1同专业的DSLR—样,也拥有全面的自动和手动曝光模式,通过机身顶部的拍摄模式转盘即可选择相应的模式,而且在工作模式转盘下面还有单张、连拍和定时拍摄的切换开关。
出色的拍摄效果
DMC-GF1采用了1210万有效像素4/3规格的Live MOS传感器,带有超声波除尘功能,这对于没有反光板和快门保护而依然可更换镜头的DMC-GF1来说非常重要。DMC-GF1的最快快门速度为1/4000秒,这和当前中端消费级数码单反相机的水平保持一致,高速连拍的速度为3张/秒,如果不是采用RAW格式存储,则可以实现无限连拍,即使是采用RAW格式,也可以一次最多拍摄7张。另外DMC-GF1的ISO感光度最高到达了ISO3200,而且DMC-GF1在高ISO感光度下的降噪能力表现出色,照片的整体动态范围表现良妩在性能参数和响应速度上DMC-GF1与当前的主流消费级数码单反保持在同一水平,在拍摄上不会让用户有不够劲的感觉。除了常规的曝光模式外,这一次DMC-GF1特别设计了一个我的色彩模式,其中有8种颇具特色的预置模式,包括富有表现力,乡愁怀旧,纯洁自然,文雅上品。单色,动态艺术,轮廓,自定义。其中的自定义模式可以让用户自行设定画面的色彩、亮度和饱和度的参数,让用户可以拍摄更多体现自己创意的照片。
高清摄像也精彩
除了照相功能外。DMC-GF1同时支持720p的高清视频拍摄功能,而且DMC-GF1在机身顶部设置了一个独立的摄像键,用户按下该键即可开始高清摄像操作,当然在机身左侧设计的HDMI高清信号接口会让用户的高清影像的欣赏更加惊心动魄。
口袋里的拍摄专家
变速视频播放器的设计与实现 篇7
1 变速视频播放器的功能设计及模块化结构
变速视频播放器的特点是实现多媒体视频播放速度的无级变速。因此在功能设计上除常规播放功能外,增加了视频媒体播放速度控制模块。变速视频播放器的主要功能模块有:打开视频(OPEN),用于搜寻和打开目标视频文件);播放,用于控制视频文件开始播放;暂停控制,用于视频播放状态时进行暂停控制;停止播放,用于视频播放状态时停止播放;正常速度播放,按照常规速度播放视频文件;加速播放,在常规速度的基础上使播放速度加快;减速播放,在常规速度的基础上使播放速度减慢;退出(EXIT),用于退出播放状态并结束播放器的运行。该播放器的功能模块设计图见图1。
变速视频播放器主要利用Active X控件技术实现开发,通过Activex.x32和Actxpriv.x32两个文件来实现Active X控件的扩展。变速模块通过调用Active X控件中的windows media player控件的参数和方法实现视频播放速度交互控制。播放器的各种交互功能通过按键交互技术[1,2]实现。播放器的程序设计采用模块化结构思想,各功能模块各自独立,通过调用共用模块来简化程序代码。变速视频播放器开发的程序结构流程如图2。“播放器界面”模块实现对播放器操作界面的控制。“变量初始化”模块实现系统变量初值的设定。“设置窗口标题”模块通过调用“设置窗口标题”知识对象,采用对变量赋值的方法实现对播放器窗口标题栏的标题设定。“Active X控件”模块实现对windows media player控件的调用。“控制注册”模块实现对windows media player控件的程序注册。“交互控制”模块实现播放器界面所有功能按键人机交互的实现。
2 变速视频播放器Active X控件的技术参数
开发变速视频播放器所使用的Active X控件为windows media player控件,它可以用来播放各种媒体文件,具有Pause(暂停播放)、Play(开始播放)、Stop(停止播放)三种方法和多种属性,播放器开发所使用的几种主要属性的技术参数如下:
1)Auto Size画面尺寸是否自动设定,取值为True或者False。
2)Auto Start是否允许自动播放,取值为True或者False。
3)Click To Play是否允许通过鼠标单击画面控制播放或者暂停,取值为True或者False。
4)Display Size显示画面的尺寸。对应设置为:默认的大小(0);一半大小(1);双倍大小(2);充满屏幕(3);最合适的大小(4);屏幕的十六分之一大小(5);屏幕的四分之一大小(6);屏幕的一半大小(7)。
5)Enable Context Menu是否允许用鼠标右键单击画面时弹出控制菜单,取值为True或者False。
6)File Name播放的媒体文件名,应包括完整的路径。
7)Mute是否静音,取值为True或者False。
8)Play State当前播放状态,具体取值为:播放已经停止(0);播放已被暂停(1);正在播放(2);等待播放(3);正向扫描(4);反向扫描(5);媒体已经打开(6)。
9)Rate播放速度,其值为1是正常速度,大于1为快速播放,小于1并大于0为慢速播放。
10)Volume音量大小,0为最大,通常为负值。
3 变速视频播放器核心程序设计
变速视频播放器在调用Authoware的Active X控件windows media player的方法和属性时,主要通过对其Rate变量进行控制,通过人机交互改变Rate变量的值来实现对视频播放速度的设定。除“注册”模块外,将打开视频、播放、暂停、停止播放、常速播放、加速播放、减速播放、退出等功能模块设计为“交互控制”模块的子模块,各模块的程序设计[3,4]如下:
控件注册模块程序为:
在以上核心模块编程设计的基础上,对其他辅助模块进行程序开发,即可完成变速视频播放器系统程序的开发。
4 变速视频播放器的测试效果
变速视频播放器是基于windows系统的播放器,将系统程序发布[5]成可执行程序文件mxkjbfq.exe后,可运行于windows9.x以上版本的任何视窗操作系统环境。在windows9.x计算机系统运行mxkjbfq.exe后即进入播放器操作界面,通过OPEN搜索并打开计算机资源管理器文件夹或者光盘驱动器中的视频文件,然后点击“播放”按钮即可播放视频。暂停、停止播放、退出的按钮与一般媒体播放器一样。视频文件打开时,默认的播放速度为常速播放,如果需要加快播放速度,可以点击“加速播放”按钮,播放速度随着点击次数的增加而增加,当希望回到正常速度播放视频时,点击一下“常速播放”按钮即可。如果需要减慢播放速度,可以点击“减速播放”按钮,播放速度随着点击次数的增加而减慢,当希望回到正常速度播放视频时,点击一下常速播放按钮即可回到正常速度播放状态。该播放器通过视频播放的反复测试运行,各功能控制均无异常现象,能很好地实现对视频播放速度的随意控制。
5 结束语
变速视频播放器是为视频材料分析而设计的特种视频播放工具,该播放器解决了常规视频播放器不能解决的问题-视频播放速度的随意变速,实现了对视频媒体播放速度的随意控制,能够解决许多行业对视频播放的特殊播放需求,具有广阔的应用前景。
参考文献
[1]李大友.多媒体技术及应用[M].北京:清华大学出版社,2003.
[2]桑飞.Authorware多媒体开发[M].石家庄:方圆电子音像出版社,2007.
[3]胡开祥.Authorware7.0[M].广东:汕头大学出版社,2006.
[4]毕广吉.Authorware多媒体开发程序设计[M].北京:人民邮电出版社,2004.
在线视频播放器 篇8
自从多媒体问世以来, 各种应用得到蓬勃发展, 多种开发工具也应运而生, 可谓百花齐放。DirectShow是Microsoft公司为游戏和其它高性能多媒体应用所提供的一套底层应用程序编程接口, 它能够完成多媒体设计的总体框架和底层工作。DirectShow对媒体数据处理采用流媒体的方式, 在应用中使用该方式可以不考虑复杂的数据传输、硬件差异和同步性工作, 同时又可以自动协商从数据源到应用的转换, 流接口提供了统一的、可以预测的数据存取的控制方法, 这样应用程序在播放媒体数据时不需要考虑它最初的来源和格式。设计中使用了DirectShow这种较新潮的标准后, 使得媒体文件的处理变得简单而富有成效。Microsoft Visual C++是大家喜欢使用的工具, 既有高级语言的简便、易用性, 又有低级语言的灵活性、强大性。本设计就是利用Visual C++ 作为开发工具, 以Windows作为开发平台, 以DirectShow为框架设计一个能够播放VCD等形式的工具, 播放常见音乐、电影, 如:MP3、AVI、MPEG等格式的媒体文件。
1 Filter Graph的设计
在任何系统的设计中, 最关键的都是系统架构以及控制部分的设计, DirectShow系统也不例外。由于这是基于对话框的设计, 在设计播放器时只需考虑Filter Graph设计和基本的音频、视频控制。
在整个设计当中, 设计的核心部分是Filter的设计, 它也是基于DirectShow音频和视频系统的难点和重点, 只有设计好了实现系统各种功能的Filter, 才能继续完成后续的设计。而在DirectShow中Filter只是一个应用的框架, 一个能支持“输入→内部处理→输出”的典型过程应用框架。在这个框架之下更重要的就是应用逻辑 (也可以说是常说的控制逻辑等) , 即“内部处理”部分。一般来说, 建议将应用框架与应用逻辑分离, 使设计的结构清晰、扩展性好, 如图1。所以设计主要在应用逻辑块, 另外, 还要处理好各个Filter之间的连接, 即Filter Graph中接口关系及其相关事件、消息的处理, 这也是很重要的部分。如果处理不当, 所做的播放器就不能实现控制和播放了, 因为具体操作和处理函数没有正确联系上。
1.1 Filter Graph第一阶段的设计
创建一个名为VdGraph的Filter Graph, 其第一阶段是创建一个Filter Graph Manager组件, 代码如下:
1.2 Filter Graph第二阶段的设计
为了实现文件的播放, 第二阶段就是要根据实际的应用, 创建一条完整的Filter链路, 代码如下:
1.3 Filter Graph第三阶段的设计
第三阶段调用Filter Graph Manager上 (或直接在某个Filter上) 的各个接口方法进行控制, 并且完成Filter Graph Manager与应用程序的事件交互, 可以调用IMediaControl接口方法控制Filter Graph的状态转换。
1.4 Filter Graph链路的验证
从DirectShow的特性中了解到:在第二个阶段中, 构建Filter链路之前, 要在GraphEdit中验证构思中的Filter链路是否正确, 而后再以GraphEdit中的Filter链路为模型在程序中实现。要使用GraphEdit这个功能, 就要在程序中创建一个Filter Graph Manager之后将其注册到活动对象表中。
在退出应用程序前, 还要将显示应用程序创建的Filter Graph的GraphEdit关掉, 在程序析构Filter Graph Manager前, 再注销先前的注册。
1.5 Filter Graph事件的处理
获取各个接口后, 就要处理应用程序对事件的通知, 即WM_GRAPHNOTIFY的消息响应。先定义这个消息WM_GRAPHNOTIFY, 然后调VdGraph::SetNotifyWindow将其设置给Filter Graph Manager。
1.6 抓图功能的实现
在播放媒体文件过程中, 常常需要用到一个很有用的功能, 就是在当前播放位置抓取图片, 使用mBasicVideo::GetCurrentImage接口方法来实现抓图功能, 设置图像的大小、图像帧分配的内存、图像帧数据的获取等。
到此, 控制逻辑的主要部分就基本实现了。
1.7 各控制Filter的实现
在音频和视频文件播放过程中, 要对各状态进行控制, 比如:停止、运行、暂停等等, 在Filter Graph中, 也应该给出相应的具体实现。到这里已经简单地完成了Filter Graph的设计, 播放器也有了一个具体的框架。
2 用户界面的设计
整个Filter Graph设计完成后, 就要设计用户界面, 应该把它设计得既漂亮适用、又合理方便, 这也是媒体播放器软件的基本要求。在界面上要做一些基本视频和音频的控制。比喻:“打开”、“播放”、“上一曲”、“下一曲”、“暂停”、“停止”、“全屏”、“退出”的控制等等。还有:在播放视频文件的时候获取属性页的“属性”;实现实时拖动的“进度条”;控制声音大小的“音量条”, 抢抓画面的“抓图”选项等。
3 播放控制的设计
先将前面设计的Filter Graph的各种操作封装, 包括Filter Graph Manager的创建、其上的各种控制的接口等。在主对话框类中, 定义一个VdGraph类型的指针VdGraph*mFilterGraph;然后使用VdGraph类型的指针mFilterGraph调用Filter Graph的各种操作来实现基本的逻辑控制, 但是当用户选择一个源文件的时候, 还要创建相应的Filter Graph。定义一个消息映射WM_GRAPHNOTIFY, 再声明一个公有的消息响应函数afx_msg void OnNMOutofmemoryHotkey1, 就可以处理Filter Graph事件。播放器已经有了播放媒体文件的功能了, 但还必须给打开按钮添加代码, 并在打开的同时播放所选文件的第一首曲子。同样给播放、上一曲、下一曲、暂停、停止、抓图、全屏、属性、退出等按钮添加代码, 分别控制, 实现不同的功能, 从而实现用按钮控件进行控制播放器的目的。
4 结束语
本播放器系统采用了Directshow应用框架, 以VC++作为开发工具。在开发过程中Fiter Graph的构建和处理让应用程序与系统之间的事件交互得以实现, 如通过MPEG的解码Filter, 以及视频色彩空间的转换Filter、音频采样频率转换Filter等等可将音频数据传送到声卡通过音箱传出, 将视频数据传送到显卡通过彩显进行显示。播放器界面以图形或各色按钮为代表, 看起来比较美观, 通过对按钮进行各种设置, 可让按钮完成相对应的任务, 操作方便, 简单、明了, 且可以播放多种媒体文件, 播放效果很流畅。
参考文献
[1]陆其明.DirectShow开发指南[M].北京:清华大学出版社, 2003.
[2]辛长安, 梅林.VC++编程技术与难点剖析[M].海口:南方出版社, 2004.
[3]赵大鹏, 时家明.用C++Builder开发基于DirectShow的视频捕获程序[J].程序员, 2004 (6) .
在线视频播放器 篇9
随着计算机科学和通信技术的发展,视频多媒体信息得到了广泛应用,与此同时知识产权和数据安全问题也日渐突出。早期的安全方法主要依赖于权限控制,视频数据本身没有被加密,容易被非法拷贝、盗版、剽窃和篡改。因此,视频加密技术作为保证安全的基本手段,已成为信息安全领域非常热门的研究课题之一[1]。医学视频有着不同于一般视频的突出性特点,如真实性、完整性等。因为以医学题材为内容的视频中大多涉及患者的姓名、肖像、病史等个人信息;牵涉误诊、误治事件发生的概率,事关医疗事故纠纷的权威认证[2,3]。出于对版权、隐私和声誉等保护的需要,对医学视频数据安全性的研究迫在眉睫,同时考虑到军事医学视频的特殊性,医学视频文件的加密和保护工作就显得更为重要。当前流行的多媒体播放软件功能参差不齐,较难满足用户对视频播放和信息保护的双重需求。为此,本文基于Delphi开发平台,利用其功能强大的组件库制作出一款可支持多种媒体格式,并能对视频数据进行特殊加密的播放器。
1 视频文件加解密的设计
1.1 加解密算法
所谓加密是指以某种特殊的算法改变原有的可理解的信息数据(明文),使其成为无意义的数据内容(密文),使用者必须通过相应的解密方法,才能将密文还原成明文,而解密是加密的逆运算、逆过程[4]。数据加密过程是由形形色色的加密算法来具体实现的,例如选择性加密,又称部分加密,它充分考虑数据本身的特征及应用要求,仅对全部数据中的关键部分(重要数据)进行加密,用很小的计算复杂度来达到较高的安全性[5,6]。
视频文件一般由信息区、数据区和索引区三部分构成,其文件头中的各字节(信息区)保存着数据格式、压缩方式、播放速度等重要参数,医学视频也不例外。视频播放器通过这些参数来识别视频文件信息的有效性,如果受到破坏,则会妨碍视频数据的正确解码,使播放器不能识别标志信息而无法播放。而且视频数据具有编码结构特殊、数据量大、实时性要求高等特点,其加密算法在安全性、压缩比、计算量和数据可操作性等方面都有一定的要求。为满足这些要求,本文采用选择性加密算法,即利用视频数据结构的特性,仅加密医学视频文件头部信息,这样拥有解密密钥的播放器才能成功打开该视频文件;对视频文件的处理过程是:分发前加密→播放时解密→使用后加密,从而最大限度地确保数据的保密性和完整性。分析和实验表明,该算法具有简单易行、实时性强等特点,在安全性、计算量等指标上均能满足一般的应用需求[7]。
1.2 加解密方法
在计算机编程中,数据流是面向对象程序设计语言中的典型体现,它彻底地取代了早期利用函数实现输入输出的功能,同时也克服了利用函数实现输入输出功能的诸多弊端。对于“流”这一概念,可简单地理解为:流是建立在面向对象基础上的一种抽象地处理数据的工具,它定义了一些处理数据的基本操作,如读取数据、写入数据等,这样程序员只需掌握流的操作方法,而不用关心流中数据的真正去向。流不但能处理文件,还可处理动态内存、网络数据等多种数据形式。显然程序员若能掌握好对流的运用,在程序开发中会利用其便利性,就能够大大提高编程效率[8]。
高质量的视频是医学应用的内在需求,与普通视频相比,医学视频的主要特点是更加偏重于清晰度,也就是对图像分辨率的要求更高,致使其拥有海量的数据;而且加解密过程的计算量通常很大,但又必须实时处理,才能保证播放流畅。为了保证医学视频的质量并提高加解密速度,本文应用Delphi的流对象对医学视频文件进行操作来实现其加密和解密。在Delphi中所有流对象的基类为TStream类,其派生类中最常用的是内存流TMemory Stream,它在内存中建立一个流对象,基本方法和函数与文件流TFile Stream相似。加密时,首先利用Load From File和Save To Stream方法分别将视频文件Source File和密钥文件Pass Word转换为内存流,再用Seek函数将指针移到密钥文件的末尾,最后使用Copy From方法将视频文件追加到密钥文件尾部,生成一个加密文件Target File,即两个流的合并(Pass Word+Source File=Target File)。解密时,首先利用Load From File方法将加密文件Target File转换为内存流,再用Position函数定位该流中存取指针的位置(密钥文件Pass Word的长度),最后使用Copy From方法从指针的当前位置拷贝流中的所有数据。由于Delphi中的Media Player组件不能直接播放内存流的数据,因此还须利用Save To File方法把该内存流保存为视频文件Source File,即两个流的分离(Target File-Pass Word=Source File)[9]。这个加解密程序只是简单地把医学视频文件添加到密钥文件的尾部,以实现对视频数据的加密和保护。实际应用中可对视频文件流的头部信息采用异或运算或与随机数据混合进行加密,解密时只要根据加密算法的原理处理好其逆运算即可。
2 视频播放器的开发
2.1 设计开发平台
作为快速应用程序开发工具的代表,Delphi不仅是一个面向对象的可视化开发环境,而且提供了功能强大的可视化组件库,并具备快速的代码编译器、简捷的数据库引擎,深受广大程序开发人员的推崇与信赖。在Delphi中,组件是具有特定行为、一定属性及相应对象的预定义窗口,它是可视化编程的基础,是整个程序的核心元素。如多媒体播放器组件Media Player,是一个进行音频和视频编程的绝好工具,它封装了Windows媒体组件接口的大量函数,用于控制多媒体设备。开发Delphi程序时,正确地选用组件,将有助于提高工作效率和代码准确率,并有利于软件调试和项目的工程化管理[10]。
2.2 设计开发过程
本文所设计的医学视频播放器按照预期的效果,包括播放控制模块、视频显示模块、信息提示模块以及系统控制模块等,见图1。在Delphi所提供的程序框架中,首先建立窗体,设计界面,然后采用面向对象、事件驱动的方法,逐步开发各个模块,最终制作出一个功能完善的个性化视频播放器,其效果见图2。
(1)播放控制模块。采用多媒体核心控制组件Media Player,通过其对应的属性设置、事件调用与方法编写,实现对医学视频文件的播放与基本的播放控制,如播放、快进、停止等操作。此外添加两个滑动条组件Track Bar,并编写On Change事件的响应代码分别用于当前视频文件播放进度的显示及动态调节、声卡音量输出大小的控制;通过按钮组件Button和键盘事件Key Down,实现播放视图全屏模式与窗口模式的切换。
(2)视频显示模块。选用面板组件Panel作为视频显示窗口,同时设置Media Player组件的Display属性为Panel。
(3)信息提示模块。使用标签组件Label和计时器组件Timer,并编写实现相应功能的程序代码,用来实时显示视频文件的当前播放状态、播放进度及其播放时长等有效信息。
(4)系统控制模块。应用Windows API函数Shell Execute打开.chm类型的帮助文件,为用户提供系统版本信息以及具体的使用方法。在“退出”按钮的On Click事件中编写代码:Application.Terminate,终止应用程序的运行,使用户安全退出系统。
视频播放器在打开和关闭医学视频文件时,会分别调用视频光盘分发前编写的解密函数和加密函数,这样把视频播放与视频加解密有机地结合在一起,为使用者提供了方便同时也保证了重要医学视频内容的安全。
3 应用结果分析
3.1 安全性分析
本文采用的选择性加密算法不是直接对视频图像像素值进行加密,而是对视频编码过程中产生的关键信息加密,所以该算法不具有数据格式相容性,加密后的视频文件只有正确解密后才能播放。因此,使用Windows Media Player、暴风影音等流行的媒体播放软件,打开数据格式信息加密后的AVI、WMV等主流媒体格式的视频文件时,将难以识别该视频数据的操作信息而不能解码和播放,会出现“试图播放的文件的扩展名与文件格式不匹配”、“不是标准的视频文件”、“无法渲染文件”等提示,达到了对该视频文件加密的目的。另外,由于医学视频文件分发前进行过加密预处理,视频加解密播放器需拥有与每个数据包相对应的解密密钥,这也增加了非授权者破解的难度,使得加密更有效,数据更安全。
3.2 加解密速度
文件加解密过程的时间消耗包括准备时间和加解密时间,其中加解密前的准备时间主要用来完成数据的读写,在计算机性能和文件大小相同的条件下,数据读写的速度由编程所用的实现方法来决定;加解密时间是在加解密算法的控制下对数据进行变换所需的时间,这取决于算法的复杂程度。本文提出的加解密方案中,因采用Delphi“流”支持技术,大大提高了视频数据交换的速度,同时由于加解密只是对视频数据的头部信息作异或运算,可明显降低加解密操作的数据量和计算的复杂度。因此,本视频播放器具有较快的加解密速度,例如在酷睿CPU@2.93 GHz、内存2 GB的计算机上对大小为74 MB、时长为308 s的AVI视频文件进行加解密速度测试,所用的运行时间约为3 s,能较好地满足视频数据应用的实时性需求。
4 结束语
本播放器已用于《活体组织病理学检查》、《沧州市医疗纠纷尸体解剖检查》等视频系统的构建,应用结果表明:该播放器界面友好、使用简单,又具有加密效果好、复杂度适中、处理速度快等特点,是一款多种功能兼备的视频播放软件,这对医学信息安全的发展具有重要意义。由于开发经验欠缺,本播放器仍需要做进一步的改进:优化程序代码,进一步提高其稳定性和执行速度;加强对视频信息安全技术的研究,寻求更安全、更高效的加解密方法应用于本设计;根据实际需求,在界面布局、使用功能等方面进行进一步修改与完善。
摘要:医学视频加密对于保护医疗数据的安全具有重要作用。本文针对医学视频文件数据量大、实时性要求高的特点,采用选择性加密算法和数据流技术,基于Delphi开发平台设计制作了医学视频加解密播放器,较好地解决了医学视频加解密问题,既能满足医学信息化的需求,又可有效地保证视频数据的安全性。
在线视频播放器 篇10
关键词:Android,移动设备,多媒体,应用程序,在线播放器,Java
Android工程是开放手机联盟(Open Handest Alliance,OHA)成员鼎力协作开发的一个开放的标准非商业平台,不仅可以满足移动用户日益增长的业务需求,同时为移动运营商提供易于管理、获利更多的增值业务,对于手机开发人员来说,在Android平台下能够获得更多自由,开发出受用户欢迎的、功能强大的应用程序,同时避免在成功的道路上遭遇层层阻碍,而手机制造商则在Android系统的基础上获得了一个稳定的、安全和廉价的平台,充分发挥硬件性能。Android的诞生在移动开发领域具有划时代意义,它顺应潮流定位准确而恰当,能够很好的满足市场的各方面需求[1]。
如今智能手机已经主导手机市场,智能机除了具备手机的通话、收发短信、通讯录等基本功能外,还具备PDA大部分功能,特别是个人信息管理系统及基于无线数据传输的浏览器、GPS等,随着3G时代到来,在移动终端与网络互联来获取网络资源越来越受到人们欢迎,对多媒体在线浏览或下载需求量也越来越大,因此针对Android系统而开发的多媒体与网络的互联变得越来越有市场,目前android手机在线播放功能尚未完善,为实现在线的音乐播放,提高用户体验,本文将通过缓存和流媒体播放技术,逐步完善MP3音乐文件的边下载边播放功能。
1 Android系统架构
Android系统架构由五部分组成,分别是:Linux内核、Android运行环境、库、应用程序框架、运用程序。Android手机设备运行在Linux操作系统下,这使得其上运行的Android应用程序具有很强的安全性。每一个Android应用程序均在其自身的虚拟机中运行。Android应用程序为托管代码,所以由应用程序而导致系统崩溃的可能性很小,降低了设备崩溃的可能性。
1.1 Linux内核
Android依赖Linux 2.6版,提供核心系统服务:安全、内存管理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。
Android库、Android运行时环境
Android包含一套C/C++库,Android系统的各式组件都在使用。这些功能通过Android应用框架暴露给开发人员。
每一个Android应用程序均运行在不同的进程中,这一进程对应一个Dalvik虚拟机的实例。基于java虚拟机,Dalvik为移动设备进行了优化设计。Dalvik虚拟机具有较小的内存占用,而且多个Dalvik虚拟机的实例在手机设备上可以并发的运行。
1.2 应用程序框架
在应用框架层编程可以跟那些核心应用一样拥有访问框架APIs的一切权限,应用的结构化设计简化了各组件之间的重用,任何应用都可以充分发挥自己的组件,并应用这些分发的组件。
1.3 应用程序
Android应用程序使用Java语言编写,Android系统自带一些核心的应用,如短信、地图、通讯录、接拨电话等。
2 Android MP3在线播放器原理分析
在线播放器并不是基于web页面的播放,而是通过应用程序对音乐网站上的MP3资源文件进行解析,同时将解析出来的信息显示到音乐盒界面,包括音乐文件名、音乐文件大小、歌词文件名等,这些资源文件构成了在线播放的原始数据,通过这些数据读取音乐文件并且下载到缓冲区或SD卡,然后利用Android提供的应用于多媒体操作的类Media Player对MP3文件进行播放,而所谓的边下载边播放,从本质上也是对文件下载之后再在播放,只是将下载和播放两个功能分别定义在两个线程中,使得二者可以异步进行,这里面涉及到了线程通信,即播放当前文件的时间如果小于源文件的当前播放位置时,就把播放停止,等待下载一段时间,当下载的文件可以支持播放后在继续播放。
3 Android MP3播放器设计与实现
3.1 平台整体架构设计
Android平台的在线播放器整体架构设计如图1所示,首先搭建一个MP3网站,将MP3基本信息定义在服务端,Android客户端定义一些接口用来与服务器通信,主要使用HTTP协议读取网站内容,同时将网站的资源信息进行解析或下载,得到具体的MP3文件信息到本地。
3.2 获取资源文件
与服务器进行通信首先在Android Manifest.xml设置访问权限:
服务器端定义一个resourse.xml的文件,将MP3信息写入文件供客户端读取解析。
读取资源文件之前首先要下载文件,下载文件的过程通常使用传统的下载文件过程进行下载,将得到的资源文件保存在一个字符串数组中,部分代码如下:
将得到的字符串sb传入到自定义的handler中,解析内部信息,如文件名、文件大小等,并将信息存入到实体类Mp3Info的对象集合中。解析资源文件用到Android类SAXParser Factory,将自定义的Content Handler信息传入到该类的实例,最终将解析结果返回给一个Mp3Info集合,解析器部分代码如下:
SAX工作原理:对文档进行顺序扫描,当扫描到文档开始与结束、元素开始与结束,产生事件通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。将文件解析成功后将信息定义在一个Adapter中,并显示在android客户端。
3.3 下载音乐和播放音乐的设计与实现
下载和播放过程状态图如图2所示。
此处下载MP3的过程与上述下载资源文件的过程大同小异,只是在存储上有些差别,即将下载的文件存储到缓冲区或者SD卡中,这样当播放文件的时候,可以直接在缓冲区或者SD卡中选择源文件进行播放,下载文件的过程关键代码如下:
对于音乐盒的设计则更复杂一些,既涉及到与服务器通信、下载文件、存储文件、播放文件等独立功能,同时也对下载和播放两个功能进行连带设计和实现。流程图如图3所示。
播放文件的关键代码如下:
即暂停播放,等待将下载的文件覆盖播放文件后,继续执行播放,这样就基本实现了播放与下载的异步与通信,关键代码如下:
4 结束语
在Android平台下开发并设计了一套C/S标准,此标准实现了服务端与Android客户端的通信,在客户端丰富了音乐播放的各项功能,提高了用户体验,本文重点是将音乐的下载和播放通过线程分别处理,实现了两者同步执行、异步处理的效果。通过深入研究Android平台架构,以及多媒体播放和线程知识,最终完成了在Android客户端的播放器边下载边播放核心功能,效果图如图4所示。
本文基本实现了最初构想,初步解决了当前Android系统对流媒体播放的不完全支持的问题,在后续的开发中,还应继续对多媒体的其他方面如视频、录像等互联功能进行研究和探索。
参考文献
[1]Conder S,Darcey L.Android移动应用开发[M].北京:人民邮电出版社,2010.
[2]也达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,2006.
[3]Home C.Android-An Open Handset Aolliance Project[EB/OL].(2008-01-01).http://code.google.com/android/what-is-android.html.
[4]公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8):85-89.
[5]谢兆学,蒋爱权.流媒体技术的java实现[J].计算机应用研究,2002,19(10):147-241.
[6]何秋红.Java Media API的研究与应用[D].贵阳:贵州大学2006届硕士研究生学位论文,2006.
[7]Wang Y,Zhu Q R,Shaw L.M aximallys moothim agree covery in transformcoding[C].IEEE Trans Communnication,1993:1544-1551.
两招,巧解显卡播放视频花屏 篇11
暑假在家玩玩游戏、看看电影是一件非常惬意的事情。可如果你不幸遇到了显卡在播放视频时花屏的现象,就未免有些大煞风景了。在这里,笔者教大家两招,轻松解决显卡播放视频时的花屏故障。
提示:本文所述技巧,仅适合非显卡硬件故障所带来的花屏现象,对因硬件故障所造成的花屏无效。硬件故障所引发的花屏现象,请参考本刊2006年8月上《挽救“垂死”的显卡》一文。
第一招,解决软件惹的祸
一般来说在播放流媒体的时候出现花屏现象,在更新驱动程序无效的情况下,就可以初步估计是软件的原因所导致的了。遇到这种情况,可以先试试看安装最新的Windows Media Player 10和RealPlayer10.5 Gold。如果是因软件问题所造成的花屏,在进行如上操作后,就可以得到解决。
提示:在播放流媒体的时候出现花屏现象,也有可能是因为解码器的原因所造成的。在这里可以用安装集成了多种解码器的《暴风影音》(http://www.skycn.com/soft/98.html)或KMplayer(http://www.skycn.com/soft/23609.html)来解决问题。
第二招,驱动程序调节大法
对于ATi显卡的用户来说,在播放视频时花屏还有可能是因为驱动程序的原因所造成的。因此,ATi显卡的用户若在播放视频的时候遇到花屏现象,不妨试试看“驱动程序调节大法”。首先,在桌面上单击鼠标右键,选择“设置”→“高级”,进入“控制中心(CATALYST Control Center)”。然后在“AVIVO 视频”→“所有设置”下,关闭“Windows Media视频加速”并点击确认即可(图1)。
提示:如果用户没有安装“控制中心”,而是安装的“控制面板”,那就需要在设置项目中取消“WMA加速”选项前的小钩了。
在线视频播放器 篇12
关键词:DirectShow,WinCE6.0,流媒体
0引言
多媒体终端是一种以播放多媒体文件为其主要功能的消费类电子产品, 其中的多媒体文件包括音频、视频、FLASH动画、图片等。而且, 在此基础之上, 多媒体终端可以扩展诸如视频录制、摄像/照相、数码相册、收音机、电子书、游戏、上网等丰富的功能, 成为一种个人信息和娱乐的便携式设备。便携式媒体播放器 (Portable Media Player, PMP) 、智能手机 (Smart Phone) 、个人数字助理 (PDA) 等都是典型的多媒体终端设备[1]。本文主要论述了如何在基于WinCE操作系统的智能设备上利用DirectShow技术实现流媒体的播放, 并给出了测试结果。
1 DirectShow简介
DirectShow是DirectX开发包中关于流媒体处理的一个开发包, 这个开发包可以进行音频和视频的捕捉, 使用它可以开发DVD应用程序和数字TV应用程序。DirectShow支持的媒体文件主要有WMA、MOV、MPG、AVI、MP3、WAV、WMV等, 无论是读取媒体文件还是将捕捉的数据写入到媒体文件, DirectShow开发包都能提供很好的技术支持。
DirectShow技术利用标准组件来处理流媒体数据, 这些组件称为过滤器。过滤器带有输入和输出针角, 或二者兼而有之。在DirectShow技术中处于最核心位置的就是作为“过滤器”的可插入标准组件, 它是执行特定任务的COM对象。过滤器又分为源过滤器 (source filter) 、变换过滤器 (Transform filter) 和表现过滤器 (Render filter) 等。过滤器通过向文件读写、修改数据和显示数据到输出设备上来操作流媒体[2]。为了完成整个任务, 必须要将所有过滤器Filter连接起来, 这3种过滤器组成了过滤器图表结构, 如图1所示。
2 DirectShow技术开发准备
DirectShow组件在“C:WINDOWSsystem32”目录下的Quartz.dll动态库中, 要使C#代码引用COM对象和接口, 必须将COM类型库转换为.NET框架元数据, 从而有效地创建一个可以从任何托管语言调用的托管包装。在转换过程中需要使用FrameWork SDK自带的TlbImp命令工具, 该命令工具在“E:Program FilesMicrosoft Visual Studio 8SDKv2.0BinTlbImp.exe”目录下 (取决于Visual Studio 2005的安装路径) 。该命令的使用方法为:TlbImp C:WINDOWSsystem32quartz.dll out:QuartzTypeLib.dll在DOS命令下执行转换成功[3]。
3多媒体播放器程序
按以下步骤创建一个空的项目:
(1) 启动 Visual Studio 2005, 然后单击菜单栏“新建”|“项目”。
(2) 在项目类型里选择“Visual C# ”|“智能设备”, 在模板中选择“设备应用程序”, 键入新项目的名称 (最好为 DirectShow) , 然后单击“确定”。
(3) 在属性窗口中将窗体名称更改为FrmPlayMedia, 将窗体文本更改为“流媒体播放器”。
按照以下步骤在项目中添加一个对 DirectShow的引用:
(1) 在Visual Studio 2005开发环境中, 选择菜单“项目”|“添加引用”命令, 弹出“添加引用”对话框。
(2) 选择“浏览”选项卡, 通过浏览找到引用QuartzTypeLib.dll所在的位置, 并引用到程序中。
(3) 引入using QuartzTypeLib后, 在程序中就可以开发相关多媒体程序了。
添加 Windows 窗体控件:
(1) 在 View (视图) 菜单中, 单击 Designer (设计器) , 或者单击 Solution Explorer (解决方案资源管理器) 中的 View Designer (视图设计器) 按钮, 切换到窗体设计器。
(2) 在窗体上添加6个Button控件, 主要用来操作播放的媒体文件。
(3) 在窗体上添加一个TrackBar控件, 用来显示媒体文件播放的进度。
(4) 在窗体上添加一个Timer控件, 用来计算媒体当前的进度。
(5) 调整控件在窗体中的排列方式, 使之符合需要而且方便用户使用, 如图2所示。
4实验结果
以上程序编译后, 即可下载到开发板上的WinCE6.0系统内, 就可以顺利地播放在线视频。图3是播放效果截图, 流媒体文件地址是mms://stream-mms.daai.tv/wmtencoder/100k.wmv。
5结束语
现代多媒体技术的终端智能化和嵌入化发展趋势, 促使嵌入式系统产品中对多媒体的应用越来越多, 特别是要求对各种多媒体文件的播放支持显得越来越重要。通过对本程序的研究, 可以比较清晰的了解WinCE下基于DirectShow多媒体编程开发的方法与步骤, 以便为更复杂的开发应用奠定基础。
参考文献
[1]何宗键.Window CE嵌入式系统[M].北京:北京航空航天大学出版社, 2006.
[2]张冬泉, 谭南林.Windows CE实用开发技术[M].北京:电子工业出版社, 2006.
【在线视频播放器】推荐阅读:
在线视频播放系统09-30
视频播放器09-13
立体视频播放器11-14
在线播放11-06
视频播放系统12-03
快速实现视频播放09-13
在线视频媒体07-09
移动在线视频APP论文10-12
OvMeet手机视频会议视频教学用户手册10-03