基于Java手机平台的移动多媒体系统分析
2017-07-27崔晋博
崔晋博
摘要:近几年来,移动通信技术与互联网技术融合发展,使得无线通信设备实现了一个层次的跨越,所以现在的无线通讯设备,正在趋向于功能多样化的方向,逐渐发展。尤其是手机各项功能的升级和发展,导致了国内很多移动业务的增值发展,同样,它一旦拥有了广泛的使用群,也会带来非常严重的一个问题,那就逐渐开发平台的多样性。这样才能满足大多数客户的需求,来满足不同手机对不同平台的要求。而平台的开发,不仅需要花費程序员很多的精力,也是一项极具挑战性,高难度的系统工程。在这样的情况背景下,急需要一个统一的跨平台的新的开发平台出现,对于Java平台,首先它本身就是面向网络的一个跨平台特性的平台,就逐渐成为目前在手机、平板等嵌入式系统中越来越受欢迎的热门软件平台了。
关键词:Java;手机移动多媒体;系统分析
1概述
Java平台已经逐渐被人们所接受,也成了很多手机平台的基础运行,这一点从以前的运算能力强大的服务器,然后变成到普通的PC机,最后是尺寸很小的智能卡,就很容易看到Java平台的用户优势。Java应用已经全面实现了广泛的下载量,并且只要是在互联网的环境下,就能通过精确的搜索,在有网络的资源下,就可以对Java平台进行安装。Sun早期只维护一套Java的运行环境。因此,Sun将Java运行环境区分成4大版本,应用于一般个人计算机上的J2SE,应用于小型设备上的J2ME以及应用在SmartCard上的Java Card。本文重点基于J2ME上的Java手机平台来进行多媒体系统的建设讨论。
2国内手机开发平台的研究现状及Java手机平台的研究现状
目前,在我国移动增值业务的应用开发平台主要有:BREW,J2ME和.NET。
BREW应用程序平台。BREW的服务平台的安装以及处理过程,只需要用户通过运营商的许可,支付相关的一定费用,就可以在互联网的条件下,将相关的应用程序安装到自定义设备中。另外,由于采用c语言开发来编译的BREW应用自身下载的环节比较大,所以对网络环境来说也是一种限制;另外,由于BREW编程难度较大,这些都在一定程度上限制了BREW的使用和发展。
对于.NET平台,主要是用来对操作系统进行集成的开发工具,主要是用来公开和消费XMLWeb服务,通过智能设备实现个性化的集成Web。总体来说它由四部分组成:构造块结构,.NET框架和VisuM Studio.NET,智能设备软件以及服务器结构。XML Web services主要作用就是通过Internet进行有关信息的共享,对于采用的是哪种设备,编程语言或者是操作方式关系都不大。Microsoft.NET平台提供创建XML Web servic-es,并将这些服务集成在一起。.NET框架只要提供,程序运行的一种整体的环境,主要用于部署XMLWeb服务。从根本上讲,NET给人们提供了一个技术的连接点,将技术和计算机连接在一起,并不仅仅是一味地限制对计算机的使用。所以从这方面来说,利用NET,我们可以在第一时间连接到我们首选设备上的信息。
J2ME是一个网络连接性特别强的平台,在这种平台上,手机能够有较强的兼容性,对各种应用程序都有一定的容纳性,这也是这套平台具有的一项核心竞争力。移动设备能够通过这个平台离线运行某些运行程序。作为Java技术,它能重新定义某些比较小型的移动设备,并且能根据具体的需要对于设备的内存和屏幕进行一系列的改造和优化,达到最佳的效果。对于平台所提供的下载的信息,在很大程度上也能用网络流量的运营商达成一致的观点,一方面,便利于本系统的推广,另一方面也能增加流量运营商的收入,创造出巨大的商业机会,也能使用户更好地体验的网络资源的利用。但同时也具有一定的缺点:可能在运行速度方面,Java系统的运行速度并不具有很强的优势,可能会稍微逊色于其他的一些多媒体运行系统。
3基于Java技术构造手机平台利用的相关技术
在具体的手机平台构建技术的选择上,应该重点考虑回调函数的具体利用。
在整个信息化平台上,回调函数是一项极其重要的工具。回调函数的利用大多数都是在非人工控制的条件下,对于未知事件发生而定义的一段函数。所以,回调函数在Windows编程中使用的场合可谓数不胜数,由此可见回调函数在整个信息化系统中的重要性已经不言而喻了。在某一个程序进行编程时,为了确保程序的稳定性,通常程序员都需要实现回调。程序员在进行编程时,需要对于某个函数进行利用,就可以通过函数的具体地址,来对相关的函数进行调回处理,在整个过程中,同时还可以完成一定消息的处理操作。另外,在对于函数有不同需求的情况下,程序员还可以通过不同回调函数的模型,选择恰当的函数来进行相关编程。总之对于回调函数的利用,可以在很大程度上改变原来单一函数处理的弊端,更能够在相关的变成中节省编程员的时间,达到高效编程。同时利用好回调函数还可以在模块与模块之间进行更好的连接,通常是在这个模块中存储另一个核心模块的信息以及技术,这样还有利于程序的安全性保护。在具体利用时,再通过回调函数传过来的地址,在进行相关模块之间的拼凑,完成一个完整的程序。但是在具体的利用回调技术时,大多数情况下都会存在各种意外,尤其是许多厂家提供的解码库接口有问题,导致了运行的停止。在具体的情况下。如果厂商并没有提供一个接口能使Ja_va层得知媒体播放完毕,即Java层不能控制循环播放,那样,使得手机平台对于多媒体功能的控制丧失了一定的严谨性。这个时候,我们就应该联系到回调函数这种技术。将一个人口函数移植在KNI层为底层,只要在相关停止指令下达的情况下,就可以调用提供的回调函数人口,并且产生相关的字节,进一步通知Java层,停止多媒体的播放,Java如果收到了,重新播放的指令,就重新调用start方法进行播放,这样就可以简单的实现多媒体功能中的循环播放。
4基于JAVA手机平台的移动多媒体系统分析
1)对于具体的系统运行的要求分析
要想成功运行一个系统,就要做好针对系统所获得的具体功能,进一步对于系统的功能需求做出分析,Java运行系统应用就应该有以下的具体要求。
首先要有具体的应用管理系统,来控制Java应用的下载,更新以及安装,显示以及执行和删除。移动设备信息的具体描述,对于手机上运行的Java系统进行相关的描述,并且说明程序的生命周期,为方便手机的运行提供优化的执行环境。无线信息应用接口,这是J2ME规范的可选包,提供无线通讯的标准储存,例如信息的相关调控。移动媒体的相关应用接口,这种接口的应用就太普遍了,主要负责播放以及控制媒体的具体数据。要做好具体的文件链接。文件链接我就是为J2ME设备提供移动设备的文件系统,使用这些来主要满足用户对于文件的要求,便于用户储存以及管理文件,值得一提的就是应该包括现在比较普遍的支持外部存储卡。个人的信息管理。做好用户个人的信息管理,方便用户在手机不同的运行环境下,仍然能够准确地获取到曾经离线的具体信息,被存储的信息简单的就应该包括日志,播放记录,以及工作列表。利用3D技术。为了能够更提供更为有效,更为灵活的方法来显示生动的3D图像,所以非常有必要在具体的多媒体系统中添加一定的3D技术,来完成屏幕保护,给用户带来一定的视觉享受,来增强系统的竞争力。数字版权管理模块,虽然在这一模块,看似没什么可利用价值,但是却是必不可少的一部分,版权管理模块的加人可以防止一些高品质的Java应用出现一些盗版的现象。
2)移动多媒体总体的设计
针对以上对于一个多媒体系统的具体需求分析,我们就可以具体针对这些需求从而做出正确的系统来满足以上的具体系统的需求。在基于Java运行的环境下,系统应该分成四层。有具体的应用层,Java层,KNI层以及移植层。应用层:应用层指的是由应用开发商编写的J2ME应用程序,主要是调用
Java层中提供的接口,实现媒体播放的功能。Java层是整个多媒体播放系统中最重要的环节,所有的源文件都在这里进行解码,并且不时地有Java层对于屏幕进行刷新,保证整个播放过程的持续。
KNI层:由于本课题的功能实现有些依赖于底层也就是厂商去实现。KNI层主要实现Java层到c层的转换,数据的传输。
移植层:实现Java层不能实现的部分,对于本课题而言,主要是解码部。
而在这四层中,主要的媒体播放需求都集中在主要的Java层,而Java层主要分为一下几个板块:管理模块,播放模块,媒体数据获取模块,控制模块,事件的处理模块,以及异常模块。每个模块都有具体的针对性作用。首先管理模块,是用来创建播放流程的控制过程,并且能和媒体数据模块获取相关的数据,获得相关的正确文件格式。播放模块的功能就比较实际,主要对多媒体播放的流程进行控制,通过暂停,重复,播放等等一系列功能。数据获取模块则根据相关的多媒体协议,取得有权限的媒体数据,并且保存成文字或者字符,传送给播放模块,进行解码,完成播放过程。控制模块的功能内容就更加详细了,它需要做好对于每一个模板的控制,以及各种播放插件的控制,确保能够做好完整的播放环节。事件处理模块也是非常重要的一个内容,当系统运行存在一些问题时,通过系统内部安插的回调函数,再向Java层发送事件,Java层的窃听器,当接受到播放完毕的事件之后,就开始重新播放,如此做到循环。通过这些板块内容之间的配合,能够做好整个多媒体的正常运行。
3)管理模块的设计
管理模块Manager,这里为实现对DataSource和Plaer有效管理,使用了工厂机制,由Manager来负责创建Player和Data-Source。Manager类描述的媒体API在javax.microedition.media.*包里。这些跨平台的API包括了绝大多数java平台接口以及一个实现类Manager。
管理模块Manager主要用来创建Player和DataSouree。根据分析,为了实现多媒体的播放,需要创建一个Player用来控制播放和DataSource用来取得数据的,所以,在Manager中并没有声明一个Public方法创建DataSource,而是在创建Player的过程中,创建了DataSource同时,还提供了获得支持的媒体和媒体协议类型的接口,可以通过这两个接口,可以判断是否支持当前媒体的播放,还有直接播放单音Tone的接口。
4)播放模塊的设计
播放模块的主要功能就是在player当中对其中的媒体数据进行处理。在数据源当中对所需要的媒体数据进行处理和分析。在player进行设置的过程当中会设计一个状态的变量对对象的状态进行实时的控制,每一次的调整都会改变它对象的状态,这样我们在对媒体数据流进行控制时,就要注意其所对应的player是否在状态上进行了一定程度上的改变。在整个多媒体系统中,对于整个播放模块的要求非常高。也可以这样说,整个系统中,播放模块的作用是整个系统的核心。在播放模块中,要做好以下几个关键性功能,比如,播放键和停止功能,在此基础上,还需要添加一些具体的功能,上一曲下一曲功能的添加,更加细致的要还要添加一些音量的调节,为了实现对播放模块的整体的控制和管理,还要对这些添加的功能设计出与之相对应的接口。整个播放模块应该以这些内容为基础,构建整个播放模块功能的实现。
5)获取数据模块的设计
获取数据模块的含义指的就是在进行数据的传送时使用数据源这种传递方式。由于在每一个层次结构当中计算机都会相应规定一个层次协议,在第一层层次结构中就叫做第一层协议,在第n层层次结构中就叫做第n层层次协议。简单来说就是使用数据源来进行每一层层次协议的传递。获取数据模块的数据源具有很强的智能性,它能够通过对数据库的寻找来进行初始数据模块的获取,并将之转送给相关数据的处理器当中,使其进行系统化的处理。当媒体播放对象进行建立之后,数据模块就可以存储在媒体播放对象之中的任意一个位置。同时,初始的媒体数据可以通过超文本传输协议的方式,在此基础之上,使用实时传输协议进行协议之间的相互传送。当然,这种传输方式并不是进行定性的,我们也可以使用其他的数据传递方式来将媒体数据导人数据处理器当中。在进行媒体数据的传送时,我们使用的是数据源。在此基础上,我们对更多的数据进行连接,以此来达到获取媒体数据的目的。为了媒体数据进行更好的传递,因此设计了许多的接口,以保证功能单一化的实现,避免系统因此造成数据传递错误的情况发生。
6)控制模块的设计
多媒体系统当中类的形式内容十分多样,而控制模块类则是构成所有类当中最基本的类,由此可见控制模块的重要性。在上文中我们曾经提过为进行媒体数据的更好传递,设计出许多的接口,而控制模块就属于接口的范畴之中。而控制模块功能主要是由音调控制器、码率的控制、视频控制器、架构位置器、时间停止控制器来进行实现的。在player当中,其主要的功能设计范围也很广阔,他可以调节音量的大小,视频清晰度以及开始和结束的时间。下面我们将结合几个具体的控制器进行详细的介绍。FramePositionControl其主要的功能就是寻找到当前的媒体时间,并将对应当时的时间,检测到对应帧数值,进行帧数的转化。RateControl主要作用就是检测当前的播放率以及接口所对应的播放率,并对其进行实时监控和管理。
5移动多媒体系统的实现分析
通过以上分析,对于Java系统进行了相关的设计处理之后,从理论到产品,还需要进一步的处理。也就是对整个多媒体系统的具体实现,以及制造出相应产品之后的具体检测工作,就充分地做好了,新产品的检验工作,才能在一定程度上发现以Java为基础平台的多媒体软件具体的不恰当之处,并且针对具体的环节,进行针对性的修改,达到真正意义上,多媒体的软件的实现。
1)移动多媒体系统的实现
管理模块的实现,在创造管理模块时,应当遵循以下的程序过程,首先对于数据的接受,先判断接受的数据是否为空的文件。如果所接受的是空的数据包,那么就表示系统在运行过程中,某些地方出现了问题,所以,立马抛出数据,并且退出系统,停止播放。若果,数据包不是空的,系统的运行就正常,则要通过具体多媒体协议来创建具体的文件,如果文件没有具体的协议来保障相应的版权,那么也不能够进行正确的播放,此时,也会退出程序,相反,有具体的协议支持文件,则能创建相关的播放列表,才能对具体的多媒体进行播放。播放板块的实现,播放板块首先对于接受到的数据或者字符进行一系列的改码过程,并且协调外部环境的控制,在具体的情况下,针对相应的多媒体文件进行解读。同时,还要编制好相应的程序来控制播放过程中对于多媒体文件的“上一个”,“下一个”,“暂停”,“播放”做好调控。控制板块的实现,控制模板主要实现在播放过程中对于文件的一系列控制。主要控制的对象包括音量,播放时间,分辨率等,这些控制类在播放类过程中应该被提前创建,应用层在播放类实际中,通过相关的调试来对播放的进程进行控制。
2)抢屏算法的实现
一个好的多媒体软件,应该充分的避免闪屏现象的出现。首先闪屏现象会很大的影响整个多媒体带给用户的整体印象,其次,也会导致许多播放程序的崩溃。所以在整个系统的设计过程中,就要处理好,闪屏现象的问题。在Java系统中,由于处于底层的软件模块,是单独分开的,所以可能导致在不同情况下屏幕,分别进行不同时的刷新,如果不同的模块刷新的结果不相同,这样就会导致闪屏现象的出现。在平台中,Java层主要侧重于体现轮廓和背景方面的内容,與它相反的解码层则主要是负责播放的视频内容,闪屏现象之所以会出现,就与这两个层面的刷新,结果有很大的关联。主要的原因就是由于两个前面在不同时间段进行屏幕的刷新,导致,他们获取结果的时间存在间隔,所以就会出现闪屏现象。而要想真正的解决闪屏现象的问题,就需要对两个层面刷新的方式以及刷新的时间段进行一个严格的统一。而这些,就要借助于Java模块来,将二者进行集中管理。具体研究的结果显示,通过这种方法,可以在一定程度上,避免闪屏现象的发生,但是同样新的缺点又暴露出来了,就是视频刷新的速度会比以往有明显的降低,并且,在具体的播放过程中,相关的视频会出现断断续续的情况。而针对这个闪屏现象,通过进一步的研究发现,具体的,避免闪屏现象的发生,则需要通过区域的,一个相加减的算法来实现。而做到这一点,就需要先找到底层解码部分的刷新区域,而另一个区域就是Java的刷新区,并且通过一个有效的算法,精确地找到两个部分的重叠区域,最后就可以通过简单的处理,将重叠区域的某一个部分进行舍弃,就能够达到彻底解决闪屏问题的结果。
3)针对应用进行测试
对于已经编辑好的简单多媒体系统,在进行使用之前,还需要经过测试的重要环节。将编辑出来的多媒体系统的播放效果,播放音效,和接口是否灵敏进行一个简单的检测。虽然检测方法比较简陋,但是,可以通过具体的播放效果来检测我们系统制作的情况。下面简单介绍一下具体的检测过程。
首先,我们将多媒体的,播放界面调整到正在播放的状态,并且设置好了,对应的播放音量以及播放率。也就是让整个多媒体系统处于正在运行的状态,然后再逐步的,对不同按键进行一对一检测,排除按键失灵的问题。比如在播放的环境下,按返回键,看看播放界面是否退回到上一层,或者,通过音量调节键,对音量进行加减的处理,来判断多媒体的音量设置键是否存在问题。同样,还可以的播放时间进行相关的设置,比如先设定一个具体的比较简短的播放时间,通过实验,到达指定的停止播放时间,整个多媒体系统是否仍然停留在播放状态来判断时间设定环节的有效性。最重要的还是主界面的菜单设置,而对于菜单,至少应该具有以下几个功能,快进,或者回退,重新播放,选择播放的具体文件,播放的有关音效等等一系列功能。
如果通过测试,我们发现,多媒体的功能和按键的功能是一致的,那么在按键的制作功能上,就已经成功了,只要系统不会出现一些程序崩溃的问题,那么就表示我们制作的多媒体系统可以正常使用。
6总结
根据以上的介绍和分析,我们有理由相信,Java平台的多媒体系统具有很强的操作性。在如今的手机平台中,利用Java制作多媒体手机平台的还不是很常见,相信基于Java平台打造出来的多媒体应用系统能够进一步促进多媒体技术的新发展,能够在市场中取得更大的市场。