前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的多媒体播放器主题范文,仅供参考,欢迎阅读并收藏。
关键词: J2ME 设计与分析 播放与控制
1.引言
随着通信技术和计算机技术的迅猛发展,3G时代的到来,人们对手持设备的应用有了更高的要求,人们已不满足于简单的通话、收发短信等基本功能,而更多的是要求有多媒体应用,能利用手机进行上网冲浪、3D游戏、播放视频等。
2.J2ME技术介绍
J2ME平台存在的基础是设备使用操作系统的多样性。虽然JAVA的运行速度经常受到指责,但手机平台的发展已经使得这种缺陷可以忽略,而J2ME适用平台的多样性使得J2ME技术成为手机应用开发的首选。它的主要技术优势在于:有良好的跨平台能力,实现了write once,run anywhere,有着与J2EE后端的无缝结合能力。因为J2ME是基于Java语言的,所以它天生就具有以下优点:
・动态内容传输。新的应用、服务和内容可以通过不同类型的网络动态下载。
・安全。类文件校验、明确定义的应用程序编程接口和安全组件确保了第三方应用程序的行为是可靠的。不会对设备或者网络造成损害。
・交叉平台的兼容性。标准化语言组件和库意味着由于支持J2ME配置和简表所带来的约束使应用和内容可以在不同设备之间灵活地传输。
・离线获取。不用激活网络连接,应用就可以被使用。这种特点降低了传输费用,减轻了可能的网络故障带来的影响。
3.系统的设计与分析
3.1目前存在的问题
随着通信技术和计算机技术的迅猛发展,人们对手持设备的应用有了更高的要求,人们已不满足于简单的通话、收发短信等基本功能,而更多的是要求有多媒体应用,能利用手机进行上网冲浪、3D游戏、播放视频等。移动设备通过网络观看视频将是必备的功能。目前的城市的网络覆盖率比较好。
在这种情况下,多媒体播放器在设计与实现中存在一些问题:
3.1.1由于多媒体手机在硬件性能上与PC机有着显著的差异,在多媒体手机上播放的视频短片的比特率要远远低于PC机上的,所以在设计多媒体手机时要受到多媒体手机硬件与操作系统的影响。
3.1.2现在多媒体手机外接的存储卡容量不是很高,当你在旅行的过程中或者在移动的过程中,因为你的存储卡的容量有限,所以你只能看少量的影音文件。
3.1.3现在多媒体手机在播放视音频文件的过程中,如果看到自己喜欢的图片,无法保存下来,作为永久的珍藏。
3.1.4如何设计一款全新的多媒体播放器,为将来的多媒体移动服务打下坚实的基础。
3.2对目前系统的改进
本项目是一个关于手机播放器的系统,通过移动终端手机能够实现在任何时间、地点进行多媒体音频与视频的播放,本项目在空间上延伸了基于Internet的网络服务,在时间上更具有灵活性。本系统只能播放格式为MPEG的视频文件与格式为WAV的音频文件,这是由底层的开发包所决定的。
本项目具有以下几个功能模块:
3.2.1视频(主要是MPEG格式)的播放模块。播放形式主要采用两种形式:本地播放与网络播放。本地播放也就是所谓的视频文件在本地手机存储器里,直接进行播放,网络播放主要是视频文件放在网络服务器,手机进行调用播放。它在空间上延伸了Internet的网络服务,在时间上更具有灵活性。
3.2.2音频(主要是WAV格式)的播放模块。播放形式主要采用两种形式:本地播放与网络播放。运行方式与视频播放模块相似。
3.2.3抓图模块。在进行播放本地与网络视频时,当你认为一个视频的瞬间你很喜欢,你就可以进行抓图,把它截取下来。
3.2.4控制模块。在进行播放音频与视频的同时,有一些基本的控制功能,比如播放、停止、暂停、增加音量、减小音量等。
4.播放与控制的设计与实现
它主要是由VideoCanvas继承Canvas,并有以下几个方法:VideoCanvas(),initialize(),paint(),time2pix(),open()等。它主要实现的功能是:对播放的视频或音频文件进行一系列的操作,比如播放、停止、暂停、增加音量、减小音量等。
以下是主要的代码:
public class VideoCanvas extends Canvas implements Runnable,PlayerListener,{//在框架中添加videocanvas类的构造函数,初始构造函数,初始化屏幕}
private void initialize(){//添加返回按钮}
public void paint(Graphics g){//只有播放视频的时候可以使用全屏}
private int time2pix(long time){//计算时间的字符串格式}
public void open(String url){//分析打开资源的URL}
public void start(){//获得视频时间长度}
public void close(){//关闭程序}
public void pause(){//首先判断player对象是否已经创建了,如果存在player点}
public synchronized void pauseApp(){//player正在播放,所以停止它并且释放资源}
public void run(){//获得播放视频所需要的时间}
public void playerUpdate(Player plyr,String evt,Object evtData){//是否播放结束}
private void doSnapshot(){//进行抓图功能}
protected void pointerPressed(){//更改滑杆上面的小方块的位置,然后请求重画屏幕}
public void commandAction(Command c,Displayable s){//控制播放}
public synchronized void startApp(){//开启程序}
public void keyPressed(int keyCode){//利用手机里的按键进行一些操作}
switch(keyCode){
case Canvas.KEY_NUM4://减小播放速度
case Canvas.KEY_NUM6://增加播放速度
case Canvas.KEY_STAR://减小音量
case Canvas.KEY_NUM0://静音
case Canvas.KEY_NUM7://向后跳跃,即快退
case Canvas.KEY_NUM5://停止播放
case Canvas.KEY_NUM9://向前跳跃
case Canvas.KEY_NUM2://暂停,播放
case Canvas.KEY_NUM8://全屏,目前不支持
case Canvas.KEY_NUM1://没有发挥作用
case Canvas.KEY_NUM3://跳过}
5.结语
本文研究的重心在于探讨利用流媒体技术使手机播放器中本地与网络(无线)终端MIDP应用开发技术的解决方法及资源的网络通信、信息整合问题。本文中深入研究了J2ME体系结构及其平台下手机程序MIDP的开发技术,详细分析了本地终端与无线终端和资源的通信解决方法,并构造了一个手机多媒体播放器系统。本文设计与开发了播放与控制,通过该系统,完整说明了MIDP应用程序开发的流程控制、界面设置与流媒体和视频压缩技术。本系统还会不断地改进,实现更广、更新、更实用的功能,以适应时代的需求。
参考文献:
[1]吴一丁.J2ME技术在移动设备上的应用.java研究组织,2005.
[2]黄宝雄.流媒体技术.中国多媒体视讯,2005.
[3]刘雄武.移动流媒体技术及其应用发展方向.CSDN,2005.06.
关键词:嵌入式;播放器;流媒体
中图分类号:TP37
随着Android在智能手机行业上的成功应用,以Android 作为嵌入式系统的开发,特别是在非手机系统上的应用方面的开发尤为引人关注。相比于PalmOS、PSOS、VxWorks等专用系统,Android系统更适合于机顶盒这类嵌入式信息家电的需要。由于在数字电视和机顶盒的软件架构中使用了不同的操作系统,不同的中间件平台,不用的应用程序框架使得软件架构层面出现了极大的差异化。在操作系统层面,Linux,uCos,VxWorks,WinCE,iTron,ThreadX等不同的操作系统在不同的产品上都有相应的部署;在中间件层面,有公开的标准化的中间件平台,比如MHP,Tru2way,ACAP,ARIB,MHEG5等,也存在私有的非标准的中间件平台;而不同的中间件软件提供商更会提供各自不同的中间件解决方案,这些解决方案之间大多是无法互相兼容的。
1 需求分析
为了解家用网络播放设备的实际需求,作者选取了不同层次的家庭用户为对象进行需求调研,首先了解了该公家庭网络播放设备的产品现状,然后在此基础上,分析总结了用户的实际需求。
家用网络播放设备主要由四大子功能系统组成:控制子系统、信号处理子系统、网络接口子系统和用户扩展接口子系统。
基本业务:模拟电视广播、FM广播,模拟付费(加扰)电视;数字视频;卫星数字视频广播(DVB-S);地面数字视频广播(DVB-T);有线数字视频广播(DVB-C);MMDS数字视频广播;数字付费(加扰)电视数字音频IP电话/传真;音乐(MOD);实时音频卡拉OK点播(KOD)数字数据信息点播(IOD);数据广播(BIS);股市证券信息广播(SIS);VBI图文电视;应用程序下载;远程数据库流向;
电子商务:交互式多媒体;互联网接入服务(IAS);远程教育;远程医疗;网上购物;网上收费;电子广告;股市证券服务(SES);网上(音、视频)广播业务;可视电话与电视会议;社区多功能服务。
2 嵌入式网络播放设备的设计
2.1 总体设计
图1 终端的系统结构
由图1可以看出,整个终端主要分为数据接收,媒体播放和显示输出三大部分。从功能上分别概括为流媒体数据接收模块,音视频解码播放模块和人机交互模块。其中,流媒体数据接收模块,主要是登陆服务器,接收并处理来自网络的流媒体数据,本论文研究系统中为MPEG-2 TS流,并将其放入环形缓冲区中,实现客户端与服务器的交互。
音视频解码播放模块,通过STB810开发板用硬件实现对MPEG-2 TS传输流的解复用,分解出视频基本流和音频基本流,并送往解码模块,调用DirectFB的解码器接口,完成对音视频流的解码,从而实现对媒体播放的处理和控制。
人机交互模块,涉及输入设备和图像的显示输出,且由于嵌入式平台下面没有集成类似MFC(Microsoft Foundation Classes,微软基础类)的基础类库和完善的消息响应机制,论文将借助于DirectFB实现了一套自己的事件响应、处理机制。同时使用封装好的DirectFB API接口直接将图形图像数据解码并显示。
2.2 TCC8900的硬件平台
本文研究采用的机顶盒是Telechips公司的STB810开发板,STB810使用基于Linux的软件架构和提供能迅速使用设备特性的标准API,不需要对底层驱动和嵌入式DSP编程有更多的了解就可以使用该客户端进行应用程序开发。
硬件接口有:RJ45以太网接口、两个SATA硬盘接口、两个SCART连接口、分量视频输出(YPrPb)、四个USB接口、两个USB 1.1接口、两个USB 2.0接口、两个UART接口、左右两个模拟音频接口、一个数字音频输入和输出接口(S/P-DIF)和一个高清多媒体接口(HDMI)。其中,第一个SCART连接口连接RGB电视设备或者CVBS信号+快慢开关信号,第二个SCART连接口连接CVBS的视频录像机(VCR)或者Y/C信号+慢开关信号。
STB810的核心设备为PNX8550媒体处理引擎,该PNX8550媒体处理引擎集成了一个MIPS32架构的微控制器和两块功能强大的用于音视频处理的DSP。它可以支持MPEG-2解码,MPEG-2传输流的处理,DVB,DES,Multi2,AES的条件访问,视频的缩放和图片的显示。并在一个单芯片上进行所有数字音/视频处理,提供复杂的视频缩放、解交叉和画质增强功能,并且支持广泛的调谐前端。通过模拟后端设备PNX8510/11转化为模拟视频信号输出给电视机。
2.3 STB810的软件架构
IPTV机顶盒作为客户端,除了需要具有良好的硬件平台外,还需要拥有软件系统才能够实现IPTV业务功能。相应的,STB810和大多数的机顶盒软件一样采用分层结构,分为内核层、中间解释层和应用层三个层次:
内核层:包括机顶盒终端硬件和Linux内核。而对于机顶盒终端硬件这一部分主要是指机顶盒硬件中的流媒体处理引擎与流媒体解码芯片;Linux内核(版本2.6.21)是指嵌入式Linux操作系统,用以控制硬件。
中间解释层:重新搭建整个软件平台的开源软件的工具包。包括一个用于音视频直播/点播使用的视频传输协议栈;用于驱动流媒体解码芯片的驱动程序和外接存储设备以及摄像头的驱动程序;用于绘制界面、将解码后的数据显示并输出到电视上的DirectFB库。
应用层:包括基于中间层开发的应用程序,如视频点播、直播等扩展应用。DVB API采用的是Linux DVB API version3,主要用到其中的Linux DVB Demux Device API,用于解复用TS流。ALSA为Advanced Linux Sound Architecture,先进Linux声音架构,是Linux平台上的用途广泛的音频API,用于音频流混频;DirectFB是专为嵌入式开发的轻量级图形界面库。
3 嵌入式视频点播终端软件环境的搭建
3.1 交叉开发环境的建立
交叉编译,是嵌入式开发过程中的一项重要技术,它的主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成,一般把前者称为目标机,后者称为主机。采用交叉编译的主要原因在于,大多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行。
在本文研究的系统中,就是在Linux PC机上生成在STB810 核心处理器(PNX8550)上执行的代码。该代码包含了Linux内核和根文件系统中所有的PNX8550可执行文件。即整个系统的交叉环境是建立在宿主机Linux PC机上的,目标板即STB810开发板用于运行操作系统和应用软件,而STB810所用到的操作系统的内核编译、应用程序的开发调试都是通过Linux PC机编译成可运行代码,然后再利用交叉编译调试工具编译连接生成可执行代码,最后将其下载到STB810开发板上运行。
3.2 设置环境变量
环境变量因用户不同而定义不同。它可以定义工程的工作环境,也可以定义调用所需库的路径。一旦定义了环境变量,系统脚本就可以通过这些信息得到所需的程序。在本文中设置环境变量的操作为:
在路径“/…/stb810-SP8”下执行:source ./setup.sh。
3.3 重建根文件系统设备
Linux根文件系统包含一些设备文件,这些文件保证了内核向STB810的设备驱动器传送信息。
通过执行:cd /…/stb810-SP8/build_128M_BASE/rootfs/dev && ./MAKEDEV来重新创建根文件系统设备。
3.4 导出根文件系统
文件系统是操作系统的重要组成部分。文件系统的概念使得用户能够查看存储在设备上的文件和路径而无须考虑实际物理设备的文件系统类型。Linux 透明地支持许多不同的文件系统,将各种安装的文件和文件系统以一个完整的虚拟文件系统的形式呈现给用户。Linux的根文件系统具有非常独特的特点,就其基本组成来说,Linux 根文件系统包括支持Linux 系统正常运行的基本内容,包含着系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件。导出根文件系统。STB810内核把build_128M_BASE/rootfs这个目录都挂载到了Linux PC机上。build_128M_BASE/rootfs这个路径下包含了STB810的一些样本程序,必须的库和其他的一些软件。
流媒体数据接收模块的实现实际完成了客户端与服务器之间的通信,本系统采用RTP协议来传输实时数据,用RTCP协议来检测网络质量,用SDP协议描述媒体流信息,以便播放器进行解码,用RTSP协议作为控制流,来控制视频点播的播放、暂停、停止等。
用户通过EPG获得感兴趣影片的URL,选择播放该影片,机顶盒与相应的RTSP流媒体服务器建立连接,发送点播请求。根据传递给媒体数据接收线程的参数,解析出请求媒体流的URL。通过函数parseVoDEPGFile(ppVoDEntry_head)解析视频点播节目单Vod.txt获取.stream_info数据,从节目单中提取出.stream_info数据,即关于视频文件的参数,如ip:192.168.101.188,port:8554,streamName:0122等,将这些info数据传递给结构体ip。
4 总结
本文深入讨论了基于Android的家用网络播放终端的技术理论和核心技术,然后重点阐述了IPTV视频点播终端的系统设计:流媒体客户端与服务器的交互流程,音视频的解码播放和消息驱动机制;实现了一种能提供良好视频质量和友好人机交互方式的嵌入式视频播放终端。
参考文献:
[1]李岩.容盘祥基于53C4B0嵌入式ucLinux系统原理及应用[M].北京:清华大学出版社,2005:293.
[2]黄晓桃.视频点播系统的研究与实现[J].中国学术期刊,2008,05.
[3]钱华峰,雷航.面向对象嵌入式GUI研究和模式应用[J].计算机应用,2004,4:10-13.
[4]杨春霞,俞斯乐.数字电视机顶盒图形用户界面的设计与实现[J].信号处理,2003(10):52-56.
设计了一种基于嵌入式系统的高清晰、便携式的车载播放系统。该播放系统的软件设计以Mplayer为后台,实现对音视频文件的解码播放等工作,并以Qt的基础类库为基础设计了嵌入式多媒体播放器的前端控制图形界面,通过创建QProcess进程,实现对播放过程的控制,与后台Mplayer进行通信,实时获取并显示播放信息,并在指定窗口对音视频码流进行输出显示。
关键词:
汽车多媒体;车载播放;嵌入式系统;多媒体播放器
目前,国内车载电子设备市场极度缺乏多媒体综合软件,该软件能有效地将车载导航、影音图像、倒车雷达、娱乐互动等多个功能整合,方便乘客和车主的使用[1]。将多种娱乐和使用功能整合统一,使得设备简洁美观,同时降低了重复安装的成本和投入。可以极大地减少车内空间消耗,降低整车油耗[2]。多媒体共屏展示也能保证驾驶员的操作强度,保证行车安全。因此,将行车信息、娱乐互动、交流通信、车载导航等功能集于一体的嵌入式综合媒体系统符合市场和环境的发展要求[3]。
1车载嵌入式播放器总体设计
出于应用领域、自带资源、可扩展资源、功耗等多方面的考虑,选择Linux内核为嵌入式多媒体播放器的操作系统核心。将多媒体技术应用于嵌入式系统中面临着诸多的技术难题,嵌入式设备的特点决定了其资源通常非常有限,而有限的资源意味着需要进行多方面技术的优化[4]。首先,嵌入式设备采用蓄电池提供能源,所以对系统的功耗要求比较严格;第二,嵌入式设备上通常没有实用的图像加速器,声卡等硬件加速设备的支持;第三,不存在DirectX,DirectShow等高层多媒体的支持。基于上述考虑,有必要设计适用于嵌入式应用的嵌入式处理器,嵌入式操作系统。根据嵌入式多媒体播放器的功能需求及技术特点,通常将嵌入式多媒体播放器的体系结构划分为硬件层、内核层和应用层,具体如图1所示。系统的硬件层的硬件平台包括嵌入式微处理器和设备,通过合理选型和匹配可以完成满意的底层硬件组合。本系统的嵌入式MCU使用三星公司的S3C2410高速微处理器,S3C2410高速微处理器作为整个硬件系统的控制核心,接收、处理相关数据并实时发出控制指令。与其配合的系统设备是完成系统功能的必要组建和模块,涉及系统存储模块FLASH和E2PROM,LCD输出单元、主控电路和音频输出模块等。软件部分包含应用层和内核层两个部分。应用层包含嵌入式Linux操作系统和硬件驱动程序,包括BootLoader,Linux内核,根文件系统3部分。应用层包含嵌入式用户应用程序、音频解码器和GUI。本系统选择嵌入式Linux操作系统作为操作系统[5]。
2操作系统平台的构建
内核是整个Linux系统的核心,根据实际情况针对内核的配置进行选择,本质上指根据开发系统的功能需求对已有的操作系统进行选择,保留开发需求的系统单元,删除不需要的模块单元。在本系统中,嵌入式Linux内核选择ARMLinux内核。Linux内核的配置系统由Makefile、配置文件(config.in)、配置工具组成[6]。完成内核的数据参数配置后,不能将程序数据直接下载到嵌入式系统中进行调试运行,因为此时数据仍然以源代码的形式存在。此时,为了生成最终能在嵌入式操作系统上运行的可执行代码[7],需要进一步对内核进行编译。过程结束后,Image和zImage两个内核映像文件会在arch/arm/boot目录下生成,zImage为压缩后的映像文件,Image为正常大小的映像文件。得到内核映像文件后,首先在开发板使用的宿主机(PC)上建立一个tftp服务,使用DNW工具,在开发板上电时按任意键进入UBoot提示符,执行以下命令。在嵌入式操作系统正常运行时,需要使用根文件系统支持各种功能[8],在内核刚启动运行时根文件系统需要挂载起来用于支持访问外部设备,同时完成内核模块应用程序的装载和运行,避免出现Kernelpanic的情况,防止系统内核在启动时没有根文件的支持。在实际应用中,嵌入式操作系统使用动态随机存取器、同步动态随机存取器、FLASH存储器作为存储设备[9]。基于存储设备,使用JFFS2,YAFFS,CRAMFS,ROMFS,RAMFS等常见系统作为存储设备的嵌入式文件系统。在本系统中,选择NANDFLASH作为硬件提案所使用的存储芯片,选用NANDFLASH上使用比较广泛的Cramfs文件系统作为嵌入式根文件系统。嵌入式Linux操作系统的启动流程如图2所示。系统启动流程包括六个步骤:(1)系统复位,从地址0x00开始执行,进入步骤(2);(2)启动Bootloader模块,进入步骤(3);(3)判断系统是否进入Linux,启动Linux内核映像,不启动则进入Uboot的命令操作环境,如果启动内核,进入步骤(4);(4)系统从NANDFLASH加载内核到内存中,完成对硬件设备的初始化工作,进入步骤(5);(5)挂载根文件系统,执行init进程,并从/etc/inittab取得配置文件,进入步骤(6);(6)提示执行用户应用程序或用户登录信息。
3视频播放器软件设计
3.1基于Mplayer实现多媒体播放器Mplayer是一个Linux下的电影播放器(也能运行在许多其他的Unices和非X86的CPU上)。Mplayer的逻辑结构可以分为四个层次,即:输入层、分流层、解码层和输出层,其结构如图3所示。本文选择Mplayer作为后台设计播放软件。利用Qt/E为软件平台设计GUI图形控制界面,对多媒体播放器的播放过程进行控制。由于条件限制,本实验在宿主机上编译并安装了Mplayer,通过Qt设计基于X86的多媒体播放器。
3.2软件总体模块设计由于Qt/Embedded工具可以绕过XWindowsSystem协议客户端库,直接读/写帧缓存的FrameBuffer的数据信息,因此实现Qt类库对帧缓存的直接读/写操作,使用基于Qt/Embedded的应用程序可以完成。本系统使用嵌入式Linux作为操作系统,通过Qt的图形平台和函数库完成嵌入式多媒体综合播放。多媒体播放系统采用模块化设计思想,其架构如图4所示。嵌入式多媒体播放器包含五个主要的模块:(1)I/O(输入/输出模块):用于多媒体文件的读入和输出。(2)UI(用户界面单元):用户界面单元的作用是方便用户操作嵌入式媒体播放器的各项功能,提供良好的人机操作互动界面和使用体验。(3)插件接口单元:读入多媒体数据(通过输入插件获取I/O模块发送过来的数据)、调用Mplayer对文件进行解码播放、文件总的时间长度、编码类型、比特率等信息的获取、暂停、快进、快退、停止、输出、输入等的动作,输入动作具体指将输出插件完成解码的数据信息传送到系统输出输入单元的过程。(4)Mplayer解码单元:为了对不同类型的多媒体文件进行解码操作,系统选择的Mplayer解码单元由分离器、音视频解码器等部分组成。(5)GUI单元:为了方便快捷的产生读/写FrameBuffer以及用户界面,GUI单元通过使用Qt/E嵌入式工具作为底层图形库。软件总体模块中各单元之间的相互连接关系是:通过输入/输出单元读入音视频信息数据,用户界面单元在接收到播放信息指令后,调用插件模块相应的函数,产生相应的信号,调用Mplayer完成对多媒体文件的解码,完成解码之后将数据送到I/O模块输出。
3.3控制流程设计主程序设计流程如图5所示。当从菜单项打开视频文件时会触发triggered()信号,执行slotopen()槽函数,调用Qfiledialog的getOpenFileName()函数从对话框中选择要播放的视频文件。系统首先判断文件格式是否为*.avi格式,如果是,则创建一个Qprocess进程,通过该进程调用Mplayer后台对视频文件进行播放,并在指定区域进行输出显示。
4交互式图形界面设计
QImage类提供了一种与硬件访问无关的图片存储方式。QPainter则主要用来完成绘图事件。QPushButton提供了图形用户界面最长用到的命令按钮部件。此GUI交互界面利用QtDesigner以QMainWindow类为基础设计了主框架,包括菜单栏以及状态栏等;同时,以QWidget类为基础创建了一个对视频播放进行控制的插件接口,并通过合理的布局与主窗体组合在一起。
5播放系统测试在指定目录打开
avi格式视频文件,运行效果如图7所示。在播放过程中,通过状态栏实时显示当前视频文件的播放时间。通过界面下方的按钮对播放器的播放过程进行音量调节、暂停、快进、快退、停止等控制,基本达到了预期的效果。打开视频文件时,终端开始输出文件的加载路径,开始读取并输出ANS_TIME_POSITION(视频播放时间)参数值,在Qt与Mplayer之间完成了通信。当在控制台实施各种控制操作时,在终端输出执行的操作动作并发送该信号,调用相应的槽函数完成对视频播放的控制动作。以上是在主机上运行播放程序执行播放控制的过程。在主机上运行的Qt程序是基于X结构的,而在实际的嵌入式开发中,需要直接通过FrameBuffer进行显示。由于条件限制及其他因素,通过qvfb模拟程序在嵌入式开发板中运行的情况,如图8所示。从图8中可以看出,在qvfb中运行该程序时,菜单项的中文显示出现了方块型的乱码,这说明菜单项已经得到了识别,只是qtopia中缺少相应的中文字体库,在默认的情况下,qvfb会调用字体库中的默认字体,这样在显示中文时会出现如上问题。可以在网络上下载相应的中文字体库并拷贝到Trolltech/Qtopiacoreopensource4.3.0/lib/fonts中。
6结论
2、一般的设备都支持MP3音频格式,到网上搜索并下载MP3格式的音频放入U盘当中。
3、到汽车上,找到汽车的USB插口,将下载好歌曲的U盘插上USB接口,打开U盘播放器,播放U盘中的歌曲。
4、连接完成,设备识别U盘以后,需要在车上的多媒体播放器进行选择。
查看sd卡存储内容可以把SD卡放手机里,在文件管理里面打开查看,也可以把SD卡取下来,放到电脑上查看。
SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。
(来源:文章屋网 )
电脑内存卡。SD卡就是内存卡,其是一种建立在半导体快闪记忆器的新一代记忆设备,其特点是体积小、数据传输速度快、可热插拔等优良等,SD卡被普遍地于便携式装置上使用,比如有数码相机,个人数码助理和多媒体播放器等。
SD卡的主要引脚和功能描述如下:1、CLK。也就是时钟信号,控制器或者 SD 卡在每个时钟周期传输一个命令位或数据位,在 SD 总线的默认速度模式下频率可在0~25MHz 之间变化。
2、CMD。命令和响应复用引脚,命令是由控制器发给 SD 卡,可以是从控制器到单个 SD 卡,也可以是到 SD 总线上所有卡。
3、DAT0~3。数据线,数据可以从卡传向控制器也可以从控制器传向卡。
(来源:文章屋网 )
1、要准备好SD卡读卡器,以及SD卡。把读卡器插入到电脑上。
2、打开台式机计算机,选择内存卡。
3、然后右键格式化,点击这个开始。
4、点击这个确定,然后看到正在把SD卡格式化。
找到蓝牙按键,打开后,把手机的蓝牙打开,开始搜索,查找信号以后,有的需要输入密码,密码在车上的蓝牙显示屏能看到,输入后可以显示配对成功。密码一般是0000或者1234。
车载蓝牙(英文Bluetooth)系统中的蓝牙技术是从手机的蓝牙技术延续下来的,拥有相同的发射系统。手机蓝牙连接成功后可进行蓝牙音乐和蓝牙功能的使用,车载蓝牙的功能就是自动辨识移动电话,不需要电缆或电话托架便可与手机联机,车主可以不接触手机,甚至是双手保持在方向盘上,都可以控制手机,用语音指令控制接听或拨打电话。也可以同步手机里面的多媒体播放器进行音乐播放。
使用车载蓝牙接听电话的好处是:保证驾驶人的行车安全,通过蓝牙对接,把开车时的电话转移到车载免提电话上,从而避免了因用手机接听造成的分神而导致事故的引发。
(来源:文章屋网 )
【关键词】小型无人机 客户端 服务器端 同步
小型o人机作为灵活的高速空中飞行器,不仅在军用、工业等方面具有一定的使用价值,而且在农业领域也具有重要的使用价值,受到许多农业部门及相关专家的高度重视。无人机实时传输高清视频图像到服务器端,可以有效的帮助科研人员获取资源信息,制定研究方案。
1 系统总体设计
本系统主要包括客户端、服务端两部分设计与开发。
(1)客户端主要利用无人机完成高清视频图像的采集,然后经过编码压缩后传输到无人机遥控接收器。
(2)在网络条件下,无人机遥控接收器通过对数据流进行封装后将其发送到指定的服务器端。
(3)服务器端通过多媒体播放器实时接收客户端发送的数据包,并将其同步显示。
2 技术方案
本系统的设计主要是基于大疆精灵4,主要包括:基于无人机数据采集的客户端、同步显示高清视频图像的服务器端。详细的设计方法如下:
2.1 客户端的设计与开发
(1)在大疆官网上进行注册,申请大疆.Android SDK密钥(key)。
(2)通过DJICamera,调用CameraReceivedVideoDataCallback()方法获取实时传输的视频流。其回调函数返回的视频流主要是H.264视频编码格式,H.264是目前最常用的视频编码格式之一,其具有高压缩比的同时还拥有高质量流畅的图像,可以工作在实时通信应用低延时模式下。
(3)利用InetAdddress封装服务器主机端的IP地址。InetAdddress的实例对象包含以数字形式保存的IP地址(如:192.168.1.1),同时还可能包含主机名(如:)。InetAdddress类提供了将主机名解析为地址(或反之)的方法。
(4)创建DatagramSocket对象,DatagramSocket主要用于发送、接收数据,它主要采用UDP协议进行数据网络的传输。
(5)发送i帧,必须注意i帧iframeId 的获取。例如iframeId = dji.midware.R.raw.iframe_1280x720_p4;
(6)利用DatagramPacket 封装回调函数返回的视频流,通过DatagramSocket发送封装的数据。
2.2 服务器端的设计与开发
(1)安装VLC media player,VLC多媒体播放器支持众多音频与视频解码器及相关格式。此处通过VLC接收客户端发送的网络串流。
(2)配置VLC相关参数,第一步:打开VLC media player,点击菜单栏“工具”选项中的“首选项”,点击弹出界面左下角的“全部”单选按钮,切换到“高级偏好设置”界面,点击“输入/编解码器”下的“去复用器”选项,将其参数设置成“H264视频去复用器”。第二步:点击菜单栏“媒体”选项中的打开网络串流,输入网路URL(如:udp:@:9001),点击播放按钮,即可实时接收客户端发送的数据。
3 无人机实时传输的应用领域
结合研究领域--农业信息化,下面主要介绍无人机实时传输在农业方面的应用。
农业作为国民经济中分布区域最广泛、经营项目最复杂、受自然条件和社会经济因素影响最大的基础产业,通过利用无人机实时传输数据到服务器端能够有效的解决农业中的部分应用问题,从而促使农业信息化发展。其部分应用如下:
3.1 在区域土地规划方面
传统区域土地规划工作一直处于人工阶段,农业科技人员,通过大量调查,得到关于土地规划相关资料。部分区域由于受到地势等主观因素的影响,经常会导致获取的相关信息不准确。利用小型无人机低空飞行获取土地高分辨率图像,这样,保证了土地规划方法的科学性、针对性和先进性。
3.2 在区域农业灌溉方面
由于小型无人机采用高分辨率数码单反相机实时获取图像,可以利用Wi-FI将其图像实时传输到PC或服务器端。通过相关软件分析图像数据,从而方便、准确的测量灌溉实际作物的布局和面积,进一步计算实际灌溉水需求量,从而正确的制定灌溉水分配方案。
3.3 在森林火灾方面
森林火灾是自然灾害之一,不仅会造成森林大面积烧毁、不少野生动物灭绝或处于濒危,而且也会危机到广大人民的生命安全。无人机能够代替消防员人在火灾现场进行高空或者近距离的观察,监测,火势蔓延情况,将其数据通过网络传输给消防中心。消防中心通过分析发送回的数据,能有效的组织消防人员抗灾。
3.4 其它农业方面
可以广泛用于农业病虫害监测、农作物生长情况监测,作物生长环境监测、农业保险勘察等。
参考文献
[1]贾鹏宇,冯江,于立宝,张佳鑫.小型无人机在农情监测中的应用研究[J].农机化研究,2015(04).
[2]陈威,郭书普.中国农业信息化技术发展现状及存在的问题[J].农业工程学报,2013(22).
[3]高万林,李桢,于丽娜,王进.加快农业信息化发展,促进农业现代化建设[A].纪念中国农业工程学会成立30周年暨中国农业工程学会2009年学术年会(CSAE 200)论文集[C],2009.
(通讯作者:杨扬)
作者简介
宋飞(1989-),男,四川阆中市人,学生,云南师范大学信息学院在读硕士,研究方向为农业信息化。
杨扬(1980-),男,云南省昆明市人。本文通讯作者,博士,云南师范大学信息学院讲师,2007年获得日本早稻田大学计算机硕士学位,2013年获得新加坡国立大学NGS博士学位,主要研究方向医学图像配准,地理空间信息技术,人体咀嚼系统。