实现移动媒体的API

上传人:hy****d 文档编号:243313016 上传时间:2024-09-20 格式:PPT 页数:40 大小:148.50KB
返回 下载 相关 举报
实现移动媒体的API_第1页
第1页 / 共40页
实现移动媒体的API_第2页
第2页 / 共40页
实现移动媒体的API_第3页
第3页 / 共40页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,开发和实现移动应用程序,教学内容,确定,MMAPI,包及其组件,javax.microedition.media,javax.microedition.media.control,javax.microedition.media.protocol,MMAPI,包播放音频和视频,开发一个自动唱片点唱机应用程序,1,MIDP1.0与MMAPI,MIDP1.0缺乏对多媒体的支持,哪怕是简单的音频播放都不支持,移动多媒体API彻底解决了J2ME平台对多媒体支持的不足,提供了一个功能强大、设计灵活,且使用简单的框架来处理音频和视频。,MMAPI主要针对具有高级声音和多媒体能力的J2ME设备,2,课程,5A /,幻灯片,3,/,共,33,张,利用,Java,开发和实现移动应用程序,移动多媒体,API,简介,目前市面上存在大量不同的媒体格式,并且还有许多新的媒体格式即将被建立。为了传输和存储这些媒体格式,存在着许多不同格式的存储设备和传输协议,为了能够使用一定设备能够访问这些不同格式的媒体,必须为其设计一个规范化的、强大的和可扩充的应用接口。,J2ME,提供了一套为规范播放和录制音频或视频接口,即移动多媒体,API,(,MMAPI,)。,移动多媒体,API,(,MMAPI,)提供了一组类和接口,可以用来在移动设备上创建和播放多媒体内容。例如,可以使用,MMAPI,创建声音,也可以用它来捕捉音频和视频数据。,MMAPI,是一个可选包,可在支持,J2ME,的设备上支持多媒体应用程序。 此,Java,规范由,JCP,在,JSR 135,中定义。其设计目的是运行任意协议和格式;例如,它没有指定实现必须支持特定传输协议(如,HTTP,或实时传输协议,(RTP),)或媒体格式(如,MP3,、,MIDI,或,MPEG-4,)。,使用,MIDP 2.2,开发的,J2ME,应用程序可以访问,MMAPI 1.1,。 因此,这些应用程序还能够捕获和播放视频及图片。 但是,,MIDP 2.0,提供的多媒体功能仅限于音频支持。,3,课程,5A /,幻灯片,4,/,共,33,张,利用,Java,开发和实现移动应用程序,描述,MMAPI,包及其架构,MMAPI,定义了一组(共三个)包,用于播放和控制移动设备上的多媒体内容。,MMAPI,中定义的三个包是:,javax.microedition.media,:,提供用来创建和管理,Player,对象的,Manager,类。,Player,对象表示移动设备中的多媒体播放器。,javax.microedition.media.control,:,提供各种类型的控制接口,可以用于,Player,对象,。,javax.microedition.media.protocol,:,用于设定协议,以控制用户自定义的控件。只在,MMAPI,中提供该包,并且它不是,MIDP 2.0,的一部分。,4,课程,5A /,幻灯片,5,/,共,33,张,利用,Java,开发和实现移动应用程序,描述,MMAPI,包及其架构(续),MMAPI,中的三个包提供了一组用来在移动设备上播放和控制多媒体内容的类和接口。,下表中列出了,MMAPI,包中定义的类:,类,描述,Manager,根据指定的多媒体内容来创建,Player,对象。 该类是在javax.microedition.media包中指定的。,ContentDescriptor,创建一个用来存储特定的媒体类型的容器。,该类是在javax.microedition.media.protocol包中指定的。,DataSource,表示一个用来处理媒体的抽象,它隐藏了访问各种源的数据的过程细节,如来自服务器的文件或流数据。,Player,对象使用该类来访问输入数据。 该类是在javax.microedition.media.protocol包中指定的。,5,课程,5A /,幻灯片,6,/,共,33,张,利用,Java,开发和实现移动应用程序,描述,MMAPI,包及其架构(续),接口,描述,Control,用来控制一个,Player,对象的媒体重放功能。 在javax.microedition.media中定义该接口。,Controllable,用来从,Player,对象中检索控件。 该接口提供了用来查询Player对象并检索所需信息的方法。 在javax.microedition.media中定义该接口。,Player,用来播放多媒体内容。,在javax.microedition.media中定义该接口。,PlayerListener,用来接收,Player,对象产生的异步事件。 在javax.microedition.media中定义该接口。,TimeBase,用于一个提供时间测量的源。,可以使用该接口来测量同步多个Player对象的时间进度。 在javax.microedition.media.protocol中定义该接口。,SourceStream,和一个,DataSource,对象一起使用以便向一个Player对象提供输入接口。 在javax.microedition.media.protocol中定义该接口。,FramePositioningControl,指定和控制视频播放器中视频帧的位置。,在javax.microedition.media.protocol中定义该接口。,GUIControl,用来控制使用移动设备的,GUI,功能的Player对象。 在javax.microedition.media.control中定义该接口。,6,课程,5A /,幻灯片,7,/,共,33,张,利用,Java,开发和实现移动应用程序,描述,MMAPI,包及其架构(续),接口,描述,MetaDataControl,用于检索和控制多媒体流中存储的元数据信息。这个接口定义在,javax.microedition.media.control,中。,MIDIControl,可以用于访问和控制,MIDI-playing,设备。该接口定义在,javax.microedition.media.control,中。,PitchControl,在不影响回放速度的前提下,提高和降低声音的音调。这个接口定义在,javax.microedition.media.control,中。,7,课程,5A /,幻灯片,8,/,共,33,张,利用,Java,开发和实现移动应用程序,描述,MMAPI,包及其架构(续),接口,描述,RateControl,控制多媒体内容在,Player,对象中的播放速度。这个接口定义在,javax.microedition.media.control,中。,RecordControl,控制,Player,对象中多媒体内容的录取。这个接口定义在,javax.microedition.media.control,中。,StopTimeControl,用于预设定时器,以停止一个播放器。这个接口定义在,javax.microedition.media.control,中。,8,课程,5A /,幻灯片,9,/,共,33,张,利用,Java,开发和实现移动应用程序,描述,MMAPI,包及其架构(续),接口,描述,TempoControl,用于控制声音的节奏。节奏定义为每分钟的拍数。这个接口定义在,javax.microedition.media.control,中。,ToneControl,用于播放和控制用户定义的音调序列。这个接口定义在,javax.microedition.media.control,中。,VideoControl,用于控制视频数据在,Player,对象上的播放。这个接口定义在,javax.microedition.media.control,中。,9,课程,5A /,幻灯片,10,/,共,33,张,利用,Java,开发和实现移动应用程序,描述,MMAPI,包及其架构(续),接口,描述,VolumeControl,控制一个,Player,对象的音量。这个接口定义在,javax.microedition.media.control,中。,10,课程,5A /,幻灯片,11,/,共,33,张,利用,Java,开发和实现移动应用程序,MMAPI,架构,11,课程,5A /,幻灯片,12,/,共,33,张,利用,Java,开发和实现移动应用程序,MMAPI,架构,MMAPI,架构由四个组件构成:,Manager,类,是整个,MMAPI,框架的入口,它将和其他三部分紧密地组织在一起。管理器提供了静态方法可以创建各种类型的播放器,还可以查询播放器支持的协议格式和媒体类型,Player,接口,:,其作用在于正确处理某种类型的媒体内容,比如某种类型的播放器能够正确播放,MP3,格式的文件,而另一种类型的播放器能够播放,3gpp,格式的视频文件。,Control:,用来改变播放器的行为。,VolumeControl,可以调整音频播放器的声音大小。,VideoControl,可以控制摄像区域的位置和大小,,Control,接口定义在,javax.microedition.media,包中,其子类都定义在,javax.microedition.media.control,包中。,DataSource,类,:,数据源知道如何从多媒体文件的位置取得媒体内容提供给播放器,媒体文件可以存储在,WEB,服务器,,RMS,持久存储空间或者文件系统。媒体数据可以通过,HTTP,或者,RTP,等协议传输给,Player,。,12,课程,5A /,幻灯片,13,/,共,33,张,利用,Java,开发和实现移动应用程序,实现,MMAPI,你可以使用,MMAPI,中定义的类和接口来创建和控制多媒体内容。,为了创建和控制多媒体内容,需要在移动设备上实现,MMAPI,的各种接口和类。,你可以使用,MMAPI,来控制移动设备的特定多媒体应用程序,比如播放不同的格式的电话铃声和声音文件。,你也可以使用,MMAPI,来在移动设备上播放和记录视频。,为了能够播放多媒体内容,你需要创建一个,Player,对象,并且要指定需要播放的数据。,Manager,类根据指定的多媒体内容来实现适当的,Player,接口。例如,如果在,Manager,类的,createPlayer(),方法中指定一个视频文件,会生成一个能够播放特定的视频文件的,Player,对象。,MMAPI,也可以用于直接播放多媒体内容,而无需用到,Player,对象。,例如,可以使用,Manager,类的,playTone(),方法在移动设备上播放单音。,13,MMAPI特性,支持单音,重复播放和记录基于时间的多媒体文件,以CLDC为目标,设计小巧,目的为了节省资源,MMAPI并非针对任何内容类型和协议,可以只实现MMAPI的子集,这就是为什么MIDP2.0中能够只实现其子集的原因,扩展性强,MMAPI在不修改原来的功能的情况下可以添加新的功能,更重要的是,可以轻松支持额外的格式,API框架为额外的控制预留了位置。,选择性实现 实现者可以只实现部分功能,14,MMAPI的主要任务,处理数据传输协议,意义在在于把数据源从文件、流媒体服务器或者设备的摄像头等位置读入到媒体处理系统中。,处理数据内容,意义在于将数据解析、解码并绘制到输出设备上,如扬声器或者手机屏幕上。,这两个任务主要由Player和DataSource类分别来完成的, DataSource屏蔽数据来源的细节,,不管它是从哪里过来的,可以是流、文件或者服务器资源等等。,而Player则负责解码工作,绘制DataSource提供的数据到输出设备上。,媒体数据,数据源,播放器,http,rtp,file,15,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件,MMAPI,提供了各种类和接口,可以用于实现移动设备的多媒体框架的各种组件。,例如,,Player,类代表移动设备中的多媒体播放工具并且有助于实现该工具。,PlayerListener,接口定义了事件类型,这些事件类型用来处理播放多媒体内容时出现的不同类型的事件。 将控制接口(如,VideoControl,和,VolumeControl,)添加到,Player,对象,以便允许移动用户在移动设备上控制多媒体内容的特性,如音量和节奏。,MMAPI,为使用移动设备捕捉和存储多媒体内容提供了支持。,可以使用,VideoControl,对象实现一个取景器,以用于在移动设备上观看多媒体内容。 在取景器中观看内容的同时,还可以使用,VideoControl.getSnapshot(String imageType),方法来拍照,并将照片保存为可移植网络图像(,PNG,)格式。,实现,Manager,类,Manager,类是一个静态工厂类,可以用于创建,Player,对象。,Manager,类定义了三个重载的,createPlayer,(),方法,用于创建,Player,对象,。,16,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件,实现,Manager,类,Manager,类是一个静态工厂类,可以用于创建,Player,对象。,Manager,类定义了三个重载的,createPlayer,(),方法,用于创建,Player,对象,。,static Player createPlayer(String LOCATION):,创建了,Player,对象,以用于播放多媒体文件。 使用,URI,定位符字符串,LOCATION,来指定多媒体文件的网络位置。,static Player createPlayer(InputStream is, String type):,创建了,Player,对象来播放多媒体文件。 使用,InputStream,对象来指定多媒体文件的数据,多媒体文件的,MIME,类型被指定为,String,对象,type,。 方法的这个版本允许您播放本地存储的多媒体内容。,static Player createPlayer(DataSource DS):,创建了,Player,对象来播放多媒体文件。 该,Player,对象播放由,DataSource,对象指定的多媒体数据。,DataSource,对象提供了连接并播放自定义数据源的多媒体数据的方法。,17,课程,5A /,幻灯片,18,/,共,33,张,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件(续),下表中列出了,Manager,类中定义的其它方法:,方法,描述,getSupportedContentTypes(String Protocol),返回指定的协议支持的多媒体内容类型列表。,内容类型标识多媒体数据的类型,如MP3音频文件、MIDI文件和MPEG视频文件。,getSupportedProtcols(String content_type),返回指定内容类型所支持的多媒体协议列表。,协议示例包括:磁盘I/O和流媒体I/O。,getSystemTimeBase(),返回,TimeBase,接口的一个对象。,playTone(int note, int time, int volume),按照它的音调和持续时间来播放声音。,18,课程,5A /,幻灯片,19,/,共,33,张,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件(续),实现,Player,接口,Player,是一个,javax.microedition.,media,包中定义的接口,它是,Controllable,接口的扩展。,Player,接口表示,Player,类的一般行为,由各种实现了,MMAPI,的供应商来实现这些,Player,类。 通过使用,Manager,类对象的,createPlayer(),方法来创建一个,Player,对象。,19,Player,对象的生命周期,Player,对象的生命周期,20,当首次构造一个Player时,它处于UNREAIZED阶段。 可以使用realize()方法将Player对象从UNREALIZED阶段转换到REALIZED阶段。 在这个转换过程中,Player对象查找播放多媒体内容所需的资源。,当您准备播放内容时,可以使用prefetch()方法将Player对象从REALIZED阶段转移到PREFETCHED阶段。 您可以使用start()方法来播放内容。 当调用start()方法时,Player对象转移到STARTED阶段。 当调用stop()方法或Player 对象遇到多媒体内容的结尾时,Player对象将停止播放多媒体内容。 在这两种情况下,Player对象从STARTED阶段转移到PREFETCED阶段。 您还可以调用close()方法来结束Player生命周期并将它送至CLOSED阶段。,您可以根根据要求在Player对象的不同阶段之间进行切换。 因此,Player对象的生命周期中的不同阶段可以帮助您有效地管理移动设备的内存和资源。 例如,在播放多媒体内容之前,可以使Player保持在UNREALIZED阶段,从而节省将播放器保持在REALIZED和STARTED阶段所需的内存开销。,21,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件(续),下表列出了,Player,对象生命周期的五个阶段:,阶段,描述,UNREALIZED,初始化阶段,在该阶段中创建,Player,对象,Player对象不处理必要的信息以获取播放多媒体内容的资源。,REALIZED,在这个阶段,,Player,对象获取必要的信息以得到播放多媒体内容所需的资源。 在这个阶段并没有获得系统相关的资源,PREFETCHED,在这个阶段,播放器获得了播放多媒体内容所需的所有资源。,这些资源还包括系统相关的资源。 预取过程将播放器的启动时间缩减到最小值。,STARTED,表示播放器当前正在处理多媒体内容的阶段。,CLOSED,在这个阶段,,Player,对象已经到达其生命周期的末尾。 在Player对象到达 CLOSED状态后,不能再次重用它。,22,代码,tonePlayer = Manager.createPlayer(Manager.TONE_DEVICE_LOCATOR);,tonePlayer.setLoopCount(1); / Loop only once,tonePlayer.realize();,ToneControl tc = (ToneControl)tonePlayer.getControl(javax.microedition.media.control.ToneControl);,创建了一个Player对象并提供了用来处理播放器音调的控件,23,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件(续),实现,Control,和,Controllable,接口,Control,接口提供了一组用于处理多媒体内容的方法。可以使用,Controllable,对象的,getControl(),和,getControls(),方法从实现了,Controllable,接口的,Player,对象中检索,Control,对象。,MMAPI,定义了其他几个从,Control,接口派生而来的控制接口,用来表示不同的控制类型。 使用这些控制来管理多媒体内容。,24,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件(续),实现,PlayerListener,接口,PlayerListener,接口监听,Player,对象生成的所有异步事件。,可以在一个多媒体应用程序中实现这个接口,并使用,Player,接口的,addPlayerListener(),方法来注册此实现。,PlayerListener,接口定义了多个,String,类型的静态字段,用来表示在播放多媒体内容时可能出现的事件。 例如,,RECORD_STARTED,字符串表示当,Player,对象开始录制多媒体内容时发生的事件。 与此类似,,STARTED,字符串表示当启动,Player,对象时出现的事件。,25,利用,Java,开发和实现移动应用程序,实现,MMAPI,组件(续),实现,DataSource,类,DataSource,类用于创建和检索多媒体数据源。,DataSource,类隐藏了如何从各种类型的源(如文件、网络服务器或,RMS,存储)读取数据的细节。,DataSource,类是一个抽象的类,用来派生从各种源(如网络、,RMS,数据源和数据文件)实现流式多媒体数据的类。 使用从,DataSource,类的派生而来的类的对象,您能够任意地访问多媒体数据。 因此,与使用,InputStream,对象访问多媒体内容相比,,DataSource,对象提供了能更简单地访问多媒体内容的方法。,可以使用,Manager.createPlayer(),方法为一个自定义,DataSource,对象提供的数据创建一个播放器。,DataSource,类的常用方法包括:,connect(),start(),stop(),getStream,(),26,利用,Java,开发和实现移动应用程序,利用,MMAPI,生成音调,你可以利用,Manager,类的,playTone,(),方法,在移动设备上生成音调。,下面是,playTone,(),方法的参数:,音符(,note,):,Note,参数的值应该在,0,127,之间。,时间间隔(,duration,):指定音调应该被播放的时间间隔。,音量(,volume,),:,Volume,参数的值在,0,100,之间。,playTone(),方法在持续特定时间内生成单音,可以使用,playTone(),方法通过播放一连串的曲调来创建音乐。 可以将,playTone(),方法放在一个循环内来生成一连串的曲调。,playTone,(),方法可以抛出以下两种异常:,IllegalArgumentException,MediaException,27,代码,以下的代码段通过调用一个循环中的playTone()方法来播放一连串的声音:,for(int counter=0; counter 100; counter.+),int NOTE= (int) (System.currentTimeMillis() % 127);,Manager.playTone(NOTE, 100, 100);,/Move the clock forward,Thread.currentThread().sleep(10);,上一段代码调用了playTone()方法100次来播放一连串的曲调。 根据当前的系统时间来计算不同的NOTE参数值,该值的测量单位是毫秒并将它除以127来得到位于0到127之间的余数。将音量和持续时间参数指定为100。,28,利用,Java,开发和实现移动应用程序,播放不同格式的声音文件,你可以利用,MMAPI,的,Player,接口播放各种格式的声音文件。,利用,MMAPI,的,Player,类可以播放的常用文件格式有:,即将被播放的,MIDI,文件被存储在本地的,RMS,中,可以利用,InputStream,对象中的,istream,对其进行检索。,MIME类型,描述,audio/midi,MIDI文件,audio/sp-midi,可升级的多音MIDI,audio/,mpeg,MP3文件,audio/x-wav,WAV PCM取样音频,image/gif,FIG89a(活动的GIF),video/mpeg,MPEG视频,29,播放一个带有.WAV扩展名的声音文件,int id;,/ play back from a record store,try ,InputStream istream = getClass().getResourceAsStream(audio.wav);,Player WAVplayer = Manager.createPlayer(istream, audio/X-wav);,WAVplayer.start();,catch (IOException ioe) ,catch (MediaException me) ,.,30,使用Player类来播放MP3文件,Player mp3player;,VolumeControl vcontrol;,try ,mp3player = Manager.createPlayer();,mp3player.realize();,/ get volume control for player and set volume to half max value,vcontrol = (VolumeControl) mp3player.getControl(VolumeControl);,if(vcontrol != null) ,vcontrol.setVolume(50);,/ start the player,mp3player.start();,catch(IOException IOex) ,catch(MediaException ex) ,.,31,Player类实现了一个MIDI文件播放器,int id;,/ play back from a record store,try ,InputStream istream= getClass().getResourceAsStream(audio.mid);,Player midiplayer = Manager.createPlayer(is, audio/midi);,midiplayer.start();,catch (IOException ioe) ,catch (MediaException me) ,.,上面的代码段创建了midiPlayer Player对象。 要播放的MIDI文件存储在本地RMS中并使用InputStream对象istream来检索该文件。,32,利用,Java,开发和实现移动应用程序,播放和控制视频,利用,MMAPI,的接口和类,你可以播放、捕捉和录制视频。,用于在移动设备上播放视频的,Player,对象应该提供用于控制视频回放的,VideoControl,对象。,利用,Player,对象的,getControl,(),或,getControls,(),方法,可以返回,VideoControl,对象。,通过对,Canvas,类进行扩展,以及使用各种,MMAPI,类和接口的对象,你可以创建一个视频播放器并播放视频文件。,33,public class CanvasVideo extends Canvas,implements PlayerHost, CommandListener ,private Player vplayer;,private int width, height;,private Command done;,public CanvasVideo () ,width = getWidth();,height = getHeight();,done = new Command(Done, Command.OK, 1);,addCommand (done);,setCommandListener (this);,34,public void startPlayer (Player p) ,vplayer = p;,try ,VideoControl v=,(VideoControl) vplayer.getControl(VideoControl);,v.initDisplayMode(,/Use the field USE_DIRECT_VIDEO because video is directly played on the Canvas,VideoControl.USE_DIRECT_VIDEO, this);,v.setDisplayLocation(2, 2);,v.setDisplaySize(width - 4, height - 4);,vplayer.start ();,catch(Exception ex),ex.printStackTrace();,35,public void paint(Graphics G) ,/ Draw a border around the VideoControl.,G.setColor(0x00ffff);,G.drawRect(0, 0, width - 3, height - 2);,G.drawRect(1, 1, width - 5, height - 4);,public void commandAction(Command c, Displayable s) ,if (c = done) ,.,/Code to stop the player when the done key is pressed,.,36,课程,5A /,幻灯片,37,/,共,33,张,利用,Java,开发和实现移动应用程序,自动唱机应用程序创建示例,问题陈述,假定你是,Technology Systems,公司的移动应用程序开发人员。该公司利用,J2ME,平台开发移动应用程序,同时也生产手机。,你需要为移动设备开发一个自动唱片点唱机应用程序,以便用户播放各种格式的声音文件。你该如何开发这个应用程序?,37,课程,5A /,幻灯片,38,/,共,33,张,利用,Java,开发和实现移动应用程序,自动唱机应用程序创建示例(续),解决方案,为了解决前述问题,你需要完成如下任务:,在,NetBeans,5.5.1,中创建一个新项目。,为应用程序创建代码。,构建并运行该应用程序。,测试该应用程序。,38,课程,5A /,幻灯片,39,/,共,33,张,利用,Java,开发和实现移动应用程序,小结,在这一课中,你学习了:,MMAPI,用于创建可以播放和控制多媒体内容的多媒体应用程序。,MMAPI,由如下三个包组成:,javax.microedition.media,javax.microedition.media.control,javax.microedition.media.protocol,Manager,类用于根据,createPlayer,(),方法中指定的多媒体内容类型,创建,Player,对象。,Player,接口代表了一个多媒体内容播放器,包含了多种用于控制和播放多媒体数据的方法。,一个,Player,对象的生命周期由五个阶段组成。,39,课程,5A /,幻灯片,40,/,共,33,张,利用,Java,开发和实现移动应用程序,小结(续),创建,control,对象的目的是提供多种控件,用于管理多媒体内容。,Control,接口提供了一个通用的方法集,可以用来控制和处理多媒体内容。,Controllable,类含有,getControl,(),和,getControls,(),方法,用于从,Player,对象中检索,Control,对象。,Player,对象可以实现,Controllable,接口。,PlayerListener,接口用于监听,Player,对象产生的异步事件。,DataSource,类用于创建和检索数据源,以便播放多媒体内容。,利用,Manager,类的,playTone,(),方法,可以在移动设备上生成音调,而不需要使用,Player,对象。,40,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!