多媒体开发.ppt
《多媒体开发.ppt》由会员分享,可在线阅读,更多相关《多媒体开发.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于多媒体开发关于多媒体开发现在学习的是第1页,共32页Android平台多媒体平台多媒体w 音频播放w 音频录制w 视频播放现在学习的是第2页,共32页音频文件介绍音频文件介绍w 有两类主要的音频文件格式: n无损格式,例如WAV,PCM,TTA,FLAC,AU,APE,TAK,WavPack(WV) n有损格式,例如MP3,Windows Media Audio(WMA),Ogg Vorbis(OGG),AAC 现在学习的是第3页,共32页移动音频文件移动音频文件w 作为移动设备音频文件应该原则上比较小,一般的格式:nWAV、由于无损压缩效果最好。nMP3、有损压缩,文件比较小,由于去除的
2、是人类无法感应到的声音,效果也很好。这是目前常用格式。nAAC、压缩比例更大,比MP3文件还要小。现在学习的是第4页,共32页如何选择音频格式?如何选择音频格式?w 作为移动设备音频文件原则上应该比较小,但是现在的移动设备处理能力已经很快了,sdcard容量的增加储备大文件也不是一个问题了。播放文件的来源也是选择文件格式的重要参考依据,如果我们的音频文件在网上直接播放,那么文件就要小这样文件传输比较快。如果文件来源于本地如sdcard,文件大小就不是问题。现在学习的是第5页,共32页音频文件介绍音频文件介绍w 有两类主要的音频文件格式: n无损格式,例如WAV,PCM,TTA,FLAC,AU,
3、APE,TAK,WavPack(WV) n有损格式,例如MP3,Windows Media Audio(WMA),Ogg Vorbis(OGG),AAC 现在学习的是第6页,共32页视频文件介绍视频文件介绍w 视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。尽管后者在播放的稳定性和播放画面质量上可能没有前者优秀,但网络流媒体影像视频的广泛传播性使之正被广泛应用于视频点播、网络演示、远程教育、网络视频广告等等互联网信息服务领域。 现在学习的是第7页,共32页适合移动设备的视频文件适合移动设备的视频文件w 3GP,3GP是一种3G流媒体的视频编码格式,主要是
4、为了配合3G网络的高传输速度而开发的,也是目前手机中最为常见的一种视频格式。w 视频MP4格式,除了支持MP3所具有的音乐播放功能外,还具备强大的MPEG-4视频播放能力。现在学习的是第8页,共32页Android开发音频应用程序开发音频应用程序w 音频播放w 音频录制现在学习的是第9页,共32页音频播放音频播放w Android平台可以通过资源文件、文件系统和网络三种方式来播放多媒体文件。无论使用哪一种播放方式,基本的流程都是类似的。现在学习的是第10页,共32页通过资源文件通过资源文件btnStart.setOnClickListener(new View.OnClickListener(
5、) btnStart.setOnClickListener(new View.OnClickListener() OverrideOverridepublic void onClick(View v) public void onClick(View v) label.setText(label.setText(妈妈咪呀!开始播放妈妈咪呀!开始播放.);.);try try MediaPlayer mp = MediaPlayer.create(MediaPlayer mp = MediaPlayer.create( MediaPlayerDemo_Audio1.this, R.raw.mam
6、ma); MediaPlayerDemo_Audio1.this, R.raw.mamma);mp.start();mp.start(); catch (IllegalStateException e) catch (IllegalStateException e) e.printStackTrace();e.printStackTrace(); ););现在学习的是第11页,共32页通过资源文件播放通过资源文件播放w raw文件夹,我们需要在res下面创建raw文件夹这个文件存放资源文件,文件命名“a-z0-9_.”,注意不能有大写字母。w MediaPlayer.create方法创建Med
7、iaPlayer对象。w mp.start()直接播放文件。现在学习的是第12页,共32页通过文件系统播放通过文件系统播放btnStart.setOnClickListener(new View.OnClickListener() btnStart.setOnClickListener(new View.OnClickListener() OverrideOverridepublic void onClick(View v) public void onClick(View v) label.setText(label.setText(妈妈咪呀!开始播放妈妈咪呀!开始播放.);.);try t
8、ry MediaPlayer mp = new MediaPlayer();MediaPlayer mp = new MediaPlayer();mp.setDataSource(/sdcard/ma_mma.mp3);mp.setDataSource(/sdcard/ma_mma.mp3);mp.prepare();mp.prepare();mp.start();mp.start(); catch (Exception e) catch (Exception e) e.printStackTrace();e.printStackTrace(); ););现在学习的是第13页,共32页在模拟器
9、中创建在模拟器中创建sdcardw 通过Eclipse的ADT插件创建w 通过sdk中的命令mksdcard创建nD:mksdcard 1024M D:workspaceandroid_sdcard_image现在学习的是第14页,共32页Eclipse的的ADT插件创建插件创建现在学习的是第15页,共32页现在学习的是第16页,共32页现在学习的是第17页,共32页视频播放视频播放w 视频播放与音频播放类似都是使用MediaPlayer类实现,但是视频播放需要一个视图(SurfaceView)展示播放画面。w SurfaceView提供直接访问一个可画图的界面,可以控制在界面顶部的子视图层。
10、SurfaceView是提供给需要直接画像素而不是使用窗体部件的应用使用的。Android图形系统中一个重要的概念和线索是surface。View及其子类(如TextView, Button)要画在surface上。每个surface创建一个Canvas对象(但属性时常改变),用来管理view在surface上的绘图操作,如画点画线。现在学习的是第18页,共32页布局管理文件布局管理文件w 我们在mediaplayer_2.xml定义SurfaceView. . . SurfaceView android:id=+id/surface android:layout_gravity=center
11、. . .现在学习的是第19页,共32页Activity中的中的SurfaceView. . .private SurfaceView mPreview;private SurfaceView mPreview;private SurfaceHolder holder;private SurfaceHolder holder;OverrideOverridepublic void onCreate(Bundle savedInstanceState) public void onCreate(Bundle savedInstanceState) super.onCreate(savedInst
12、anceState);super.onCreate(savedInstanceState);setContentView(R.layout.mediaplayer_2);setContentView(R.layout.mediaplayer_2);mPreview = (SurfaceView) findViewById(R.id.surface);mPreview = (SurfaceView) findViewById(R.id.surface);holder = mPreview.getHolder();holder = mPreview.getHolder();holder.addCa
13、llback(this);holder.addCallback(this);holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); . . .现在学习的是第20页,共32页SurfaceHolderw SurfaceHolder接口持有Surface引用,并且定义了方法控制Surface的尺寸和格式。在SurfaceHolder中定义了4种Surface类型,分别是NORMAL、HARDWARE、GPU和PUSH_BUFFER
14、S。在视频播放与相机预览中,通常是使用PUSH_BUFFERS,也就是说,Surface本身并没有维护一个缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前。w 可以通过holder = mPreview.getHolder();获得这个对象。w SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS是为了surface 指定PUSH类型的缓冲区。现在学习的是第21页,共32页Listener的使用的使用w 除了MediaPlayer类,我们还需要注意几个播放器件Listener的使用,它们提供了播放器的更多的状态信息。除了OnVideoSizeChangedListe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体 开发
限制150内