APP下载

藏文Flv播放器的设计与实现

2012-07-25戴玉刚刘战东

计算机工程与设计 2012年3期
关键词:视频文件藏文播放器

戴玉刚,刘战东

(西北民族大学 中国民族信息技术研究院,甘肃 兰州730030)

0 引 言

藏族有着悠久的历史、灿烂的文化,其文献遗存在国内仅次于汉族,在世界民族之林亦有很大反响。藏语现在仍然在藏区被广泛的使用,但是很多藏族同胞对汉语或其它语言知之甚少甚至根本都不了解[1-2]。由于计算机信息技术的成熟和藏文处理技术的发展,开发实时可靠、多功能、数字化、操作简单的基于计算机网络通讯技术和多媒体应用的藏文Flv播放器己成为计算机、通信、消费电子产品领域技术发展的主要方向之一[3-4]。

虽然说随着计算机技术的迅速发展,藏文信息技术有了一定的发展,但是在国内外并没有查找到有关藏文Flv播放器的研究及相关报道,因此展开对藏文Flv播放器的研究意义重大。应该说藏文Flv播放器在国内外的研究具有非常重要的应用价值。本文设计开发的藏文Flv播放器,兼容目前流行的Flash v10格式,它可以作为一个独立的播放器,也可以作为插件集成到浏览器之中。

1 Flex技术

本文设计的藏文Flv播放器是采用Flex3.0开发,下面对该技术作简要的阐述。Flex是Adobe公司开发的支持RIA (rich internet applications)开发和部署的技术产品,是面向企业级的应用。利用Flex的强大功能,用户可以开发出富有交互性和标签的用户界面。在Flex工程中,用户使用ActioScript为应用程序添加行为,主要采用两种方法:一种是在MXML文件中直接添加ActioScript代码;另一种是直接在AS文件中编写ActioScript代码,然后将其导入到MXML文件。MXML是一种用来描述Flex应用程序界面的标签语言,它是基于XML的一种实现[3-4]。

由于Flex3.0是英文版本,所以对中文字体的支持并不太理想,只有少数中文字体可以使用,而藏文不属于其中一种。

本文设计的藏文Flv播放器是采用Flex3.0开发,下面对该技术作简要的阐述。Flex是Adobe公司开发的支持RIA (rich internet applications)开发和部署的技术产品,是面向企业级的应用。利用Flex的强大功能,用户可以开发出富有交互性和标签的用户界面。在Flex工程中,用户使用ActioScript为应用程序添加行为,主要采用两种方法:一种是在MXML文件中直接添加ActioScript代码;另一种是直接在AS文件中编写ActioScript代码,然后将其导入到MXML文件。MXML是一种用来描述Flex应用程序界面的标签语言,它是基于XML的一种实现[4-6]。

由于Flex3.0是英文版本,所以对中文字体的支持并不太理想,只有少数中文字体可以使用,而藏文不属于其中一种。如果需要使用藏文字体,必需引用藏文字体的.TTF文件,主要有两种方法可以采用:①在控件的属性中引用;②在CSS样式中引用藏文字体。具体介绍如下:

(1)在控件的属性中引用:例如,需要你想把按钮控件名设为藏文的 “确定”,那么在按钮控件的属性中引用藏文 “TIBETBT”字体的语法格式如下所示

(2)在CSS样式中引用藏文字体:在CSS样式中引用藏文字体的语法格式如下所示:

@font-face

Src:url(“藏文字体路径”);

fontFamily:TIBETBT;//藏文字体名

2 藏字的特点

为了更好地设计和开发藏文Flv播放器,本文首先对藏文字体的特点和结构进行研究。

藏文属于拼音文字,通常分为两类:现代藏文和古代梵文。现代藏文是在梵文的基础上发展而来的,因此现代藏文和梵文在书写上十分相类,它是由辅音字母、反体字、叠字、元音符号、数字及符号组成[7]。一个藏字有1~7个字符构成[7-8],它是按自左到右、自上到下的顺序呈非线性排列。一个完整的藏字的拼写形式如图1所示。

3 藏文Flv播放器结构设计

藏文Flv播放器 (TibetanFlvPlayer)的主要作用是,接受用户选择的本地Flv文件,并将选择的视频文件播放和显示出来。接受用户对播放的控制,包括改变播放、暂停和重播。接受用户对视频的控制。因此,在实例中需要处理的对象有:视频显示器和控制器等。其功能主要包括:处理用户选择、显示视频文件、调节视频效果等。图2展示了本实例TibetanFlvPlayer中的结构及各模块的功能,这里仅展示了主要的功能[9-10]。

图1 一个藏字图

图2 TibetanFlvPlayer结构设计

4 藏文Flv播放器功能

下面以 “TibetanFlvPlayer”实例为例介绍一下需要的功能:

4.1 播放显示器

这是TibetanFlvPlayer的主体,负责播放当前的Flv文件,将此视频显示出来。Flex 3.0中的VideoDisplay组件专用来播放 Flv格式视频[10-12]。

4.2 播放控制器

提供与用户交互的功能,包括播放与暂停及全屏等。此功能增加了播放器的可操作性,也增加了用户的兴趣[10-12]。播放控制器中,藏文名称与相应的中文名称对照表,如表1所示。

?

(1)播放/暂停功能:播放/暂停功能只需要调用Video Display组件的play方法和pause方法实现。

(2)全屏/退出全屏功能:实现 “全屏/退出全屏”功能前需要在FlvModel类中定义一个了布尔型的变量is-FullSrceen,用以表示当前是否为全屏状态。

(3)静音功能:由于VideoDisplay组件的volume属性绑定在id为videoVolume的HSlider组件上,所以控件HSlisder组件的值就能控制视频的音量。“静音”功能只要videoVolume.value=0即可。

(4)改变播放速度:由于id为videoSlider的 HSlider组件的属性绑定在VideoDisplay组件的playheadTime属性上,所以HSlider组件能实时显示播放速度。

(5)拖放控制:本播放器允许用户将Flv和H.264编码的文件拖放到上面进行播放。一旦视频文件被接受,视频文件的路径也被传给了播放器。

4.3 菜单功能

TibetanFlvPlayer播放器实例中使用<mx:MenuBar>组件添加菜单,当用户单击菜单子项时会执行相应的操作。在TibetanFlvPlayer中,藏文菜单名称与相应的中文名称对照表如表2所示。

?

单击相应的按钮时,弹出的对话框中藏文信息与相应的中文信息对照表如表3所示。

菜单项重要包括两个主菜单:“文件”和 “关于”。“文件”菜单下面重要有两个子菜单:“打开”和 “退出”,“关于”菜单下面重要有一个子菜单:“版本”。当用户单击菜单 “打开”时,可以打开本地文件,选择要播放的Flv格式的视频,当单击菜单 “退出”时,将弹出一个对话框,有两个按钮:“最小化到托盘”和 “直接退出程序”,最终效果如图3所示。当单击菜单 “版本”时,将弹出一个对话框显示版权和版本信息,最终效果如图4所示。

?

5 模块设计参考

(1)TibFlvModel类:TibFlvModel类继承于 Cairngorm框架的ModelLocator类,用以存储数据、状态和资源[11]。

(2)TibFlvControl类:TibFlvControl类继承于Cairngorm框架的FrontController类,用以监听CairngormEvet事件[12-15]。

(3)OpenVideoEvent类:OpenVideoEvent类继承于Cairngorm框架的CairngormEvent类,用以打开视频事件[14]。

(4)OpenVideoCommand命令类:OpenVideoCommand命令类继承于Cairngorm框架的Command类,用以对事件进行具体处理。OpenVideoCommand命令类的主要功能是加载Flv格式视频[14]。

(5)Utils类:Utils类中定义了时间格式化处理函数formatVideoTime,用以将单位为毫秒的小数转换为形如“12:23:23”的时间格式字符串[14-15]。

(6)TibFlvPlayViewHelper类:TibFlvPlayViewHelper类继承于Cairngorm框架的ViewHelper类,用于修改MXML组件[14-15]。

(7)退出应用程序和最小化托盘:以下代码定义了closingApplication函数实现了 “应用程序的退出和最小化托盘”功能[15]。

(8)藏文字体的显示:Flex中除了使用设备字体外,还可以使用Windows中的内置字体。藏文字体是一种非系统字体,它需要注册以后才能被使用,语法如下所示。

[Embed (source = “C:/WINDOWS/Fonts/arial.ttf”,fontName= “Arial”,mimeType= “application/xfont”)]

Private var ArialFont:Class;

参数说明如下:①source:字体文件所在路径。②font-Name:程序中所使用的字体别名。③mimeType:application/x-font。

6 实验测试

硬件环境配置如表4所示。

表4 硬件配置

测试效果如图5所示。

实验结果分析:通过测试,我们发现TibetanFlvPlayer不仅可以播放Flv格式的视频文件,而且还可以直接播放F4V格式的视频文件,播放效果也非常好,已达到了我们设计开发的目的。

7 结束语

图5 实验效果

目前,Flex技术已日渐成熟,利用该技术开发的应用程序具有更强的用户交互性,可以给用户带来更丰富、体验性更强的用户界面。利用Flex技术,我们设计和实现藏文Flv播放器,通过测试,视频播放效果非常理想,同时本播发器还可以正常播发F4V格式的视频文件。但是本播放器也存在很多不足,与我们常用的播放器相比,功能还不够完善;由于本播放器利用远程服务器作为用户界面的藏文正常显示的支撑技术,目的就是防止在用户没安装藏文字库的情况下,TibetanPlayer也能够正常显示藏文,所以运行开销比较大;另外在用户的网络发生故障或性能不太稳定的情况下,藏文字体的正常地显示也存在一定问题。因此下一步我们要进一步优化播放器的性能。

[1]WANG Hai-hong.Research and implementation of a Tibetan input method based smartphone OS Symbian [D].Lanzhou:Northwest University for Nationalities,2009 (in Chinese).[王海红.基于Symbian OS的藏文手机输入法的研究与实现[D].兰州:西北民族大学,2009.]

[2]YU Hong-zhi.The research of Tibetan input method cross the windows and Linux platform [J].Information Technology &Standardization,2007,8 (8):60-64 (in Chinese). [于洪志.跨Windows和Linux平台的藏文输入法研究 [J].信息技术与标准化,2007,8 (8):60-64.]

[3]HU Jie.Flex completely self-study manual [M].Beijing:Mechanical Press,2009 (in Chinese).[胡洁.Flex完全自学手册 [M].北京:机械出版社,2009.]

[4]CHENG Shao-lian,CHEN Lin. The design of H.264 streaming media player based on Directshow [J].Shanxi Electronic Technology,2010,38 (6):65-67 (in Chinese). [程少炼,陈林.基于Directshow的H.264流媒体播放器设计[J].山西电子技术,2010,38 (6):65-67.]

[5]ZHANG Hai-bin,LI Hui,WU Ye,et al.Design and implementation of embedded high definition player [J].Computer Engineering and Design,2010,31 (13):3084-3087 (in Chinese).[张海滨,李挥,吴晔,等.嵌入式高清播放器的设计与 实 现 [J]. 计 算 机 工 程 与 设 计,2010,31 (13):3084-3087.]

[6]MA Yan,LI Cun,LI Xiaoyong,et al.Design and implemen-tation of multimedia player based on ARM [J].Computer Engineering,2006,32 (24):221-223 (in Chinese).[马燕,李存,李晓勇,等.基于ARM平台的多媒体播放器的设计与实现 [J].计算机工程,2006,32 (24):221-223.]

[7]GAO Ding-guo,GONG Yu-chang.A statistically study on the qualities of all modern Tibetan character set [J].Journal of Chinese Information Processing,2005,19 (1):71-75 (in Chinese).[高定国,龚育昌.现代藏字全集的属性统计研究[J].中文信息学报,2005,19 (1):71-75.]

[8]LIU Tao,YANG Xiu-xia.Unicode programming in Chinese multilingual text processing [J].Computer Engineering and Design,2006,27 (6):2020-2023 (in Chinese). [刘涛,杨秀霞.中国多民族文字信息处理中的Unicode编程 [J].计算机工程与设计,2006,27 (6):2020-2023.]

[9]HE Hui,WANG Hong-jun,HUANG Yong-jian.Design and implementation of file system in intelligent player[J].Journal of Shandong University (Engineering Science),2006,36 (3):77-80 (in Chinese).[何辉,王洪君,黄勇坚.智能播放器文件系统的设计与实现 [J].山东大学学报 (工学版),2006,36 (3):77-80.]

[10]SUN Xiao-hui,LIU Jian,WANG Chun,et al.Design and implementation of an embedded flash player [J].Computer Applications,2008,28 (1):248-250 (in Chinese). [孙晓辉,刘建,王春,等.一种嵌入式Flash播放器的设计与实现 [J].计算机应用,2008,28 (1):248-250.]

[11]HUANG Xi.Flex3.0RIA development:Realization based on ActionScript3.0 [M].Beijing:Electronic Industry Press,2008:508-533 (in Chinese). [黄曦.Flex3.0RIA 开发详解:基于ActionScript3.0实现 [M].北京:电子工业出版社,2008:508-533.]

[12]WANG Yong-hao,ZHOU Yan-sen.Design and implementation of MP3player based on embedded Linux [J].Computer Engineering and Design,2009,30 (17):3948-3951 (in Chinese).[汪永好,周延森.基于嵌入式Linux的MP3播放器的设计与实现 [J].计算机工程与设计,2009,30 (17):3948-3951.]

[13]XU Xue-mei,XU Wei-qin,ZHOU Wen,et al.Design and implementation of multi-format media player based on S3C2440[J]. Microcomputer Information,2010,26 (9-2):12-14(in Chinese). [许雪梅,徐蔚钦,周文,等.基于S3C2440的多格式媒体播放器的设计与实现 [J].微计算机信息,2010,26 (9-2):12-14.]

[14] WANG Dao-qian,LIU Ding-zhi, WEN Jun-hao.Analysis and realization of MP3player based on ARM processor [J].Computer Engineering and Design,2007,28 (7):1595-1597(in Chinese).[王道乾,刘定智,文俊浩.基于ARM处理器的MP3播放器分析与实现 [J].计算机工程与设计,2007,28 (7):1595-1597.]

[15]SHEN Jing,HE Bi-shi,ZHOU Li.Design and implementation of Flash player for mobile device [J].Computer Systems& Applications,2009,18 (2):83-86 (in Chinese).[沈静,何必仕,周丽.移动Flash播放器的设计与实现 [J].计算机系统应用,2009,18 (2):83-86.]

猜你喜欢

视频文件藏文播放器
流媒体视频文件相似性识别的方法
随心定制视频文件的缩略图
西藏大批珍贵藏文古籍实现“云阅读”
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
基于STM32的MP3播放器设计
黑水城和额济纳出土藏文文献简介
Moon ACE播放器/放大器一体机
藏文音节字的频次统计
现代语境下的藏文报刊
播放器背板注塑模具设计