您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 零点起飞学Android开发之Android多媒体应用
第11章Android多媒体应用每个使用Android系统的人都会知道Android系统中带有一个图库应用程序和一个音乐播放器。打开图库可以查看到当前终端里所有的图片文件,而音乐播放器可以看到当前终端里所有的音乐文件。这就是Android的多媒体。除此之外,Android多媒体还支持视频的播放和录制,以及图片的采集(即拍照)。11.1音乐播放器音乐播放器是现在手机中的一个最基本的应用,差不多每一部手机都包括了这一功能。在Android中,与音频相关的类是MediaPlayer类,它提供了音频的播放、暂停、停止和循环等功能方法。在Android系统中,支持的音频格式主要有MP3、WAV和3GP。默认支持的音频文件有:存储在应用程序中的本地资源(Resource);存储在文件系统的标准音频文件(Local);通过网络连接取得的数据流(URL)。11.1.1MediaPlayer类简介Android系统使用MediaPlayer类来播放音频。方法名称方法说明publicstaticMediaPlayercreate(Contextcontext,intresid)从resid资源ID对应的资源文件中装载音频文件,并返回新创建的MediaPlayer对象publicstaticMediaPlayercreate(Contextcontext,Uriuri)从指定的Uri装载音频文件,并返回新创建的MediaPlayer对象publicintgetDuration()获取音频文件播放的总时长publicvoidpause()暂停音乐播放publicvoidprepare()准备播放器播放publicvoidreset()重置未初始化状态的媒体播放器。publicvoidseekTo(intmsec)寻求指定的时间位置,播放指定的音频内容publicvoidsetDataSource(Stringpath)指定装载path路径所代表的文件publicvoidsetDataSource(Contextcontext,Uriuri)指定装载Uri所代表的文件publicvoidsetDataSource(FileDescriptorfd,longoffset,longlength)指定装载fd所代表的文件中从offset开始,长度为length的文件内容publicvoidsetDataSource(FileDescriptorfd)指定装载fd所代表的文件publicvoidsetLooping(booleanlooping)设置循环播放publicvoidsetVolume(floatleftVolume,floatrightVolume)设置音乐音量publicvoidstart()播放音乐publicvoidstop()停止播放音乐11.1.2本地音频文件播放学习了MediaPlayer的相关API之后,我们就可以开发应用程序。使用MediaPlayer播放存储在应用程序中的本地资源音频文件要经过以下流程。加载音频文件暂停播放音乐MediaPlayer.create()开始播放音乐停止播放音乐MediaPlayer.start()MediaPlayer.pause()MediaPlayer.stop()1.音乐的播放、暂停和停止2.音量设置对于音量设置,Android提供了publicvoidsetVolume(floatleftVolume,floatrightVolume)方法,语法如下。mPlayer.setVolume(floatleftVolume,floatrightVolume)其中,leftVolume表示左声道声音,rightVolume表示右声道声音。leftVolume和rightVolume参数值范围均为0.0f(声音最小)——1.0f(声音最大)。3.播放进度设置Android提供了publicvoidseekTo(intmsec)方法,设置音乐的播放进度,播放指定的音频文件内容。语法如下。mPlayer.seekTo(intmsec);其中,seekTo()方法用来查找指定时间位置,msec属性用来设定音频文件偏移时长。4.音乐循环播放Android系统提供了publicvoidsetLooping(booleanlooping)方法,传入参数true时,设置音乐循环播放。11.1.3多个标准音频文件播放上一节中,调用publicstaticMediaPlayercreate(Contextcontext,intresid)方法播放音乐,使用非常简单,但每次调用都会返回新创建的MediaPlayer对象。如果程序需要使用MediaPlayer播放多个音频文件,使用MediaPlayer的静态create()方法就不合适了。此时我们可以考虑,使用publicvoidsetDataSource(Stringpath)方法来装载指定的音频文件。11.2视频播放器上一节中我们学习了有关音频播放的知识,本节我们继续来看Android在视频播放方面的应用。Android系统支持的视频文件格式有3GP、MP4。Android系统所能播放的视频文件可以存储在SDCard或Android的系统文件内。11.2.1视频相关类简介Android系统提供了VideoView控件,用于在界面设计时显示视频文件。在使用VideoView播放视频文件时,需要使用到以下类。下面我们一一进行介绍。1.VideoView类VideoView提供了一系列方法。方法名称方法说明publicbooleancanPause()判断是否能够暂停播放视频publicbooleancanSeekBackward()判断是否能够倒退publicbooleancanSeekForward()判断是否能够快进publicintgetCurrentPosition()获得当前的位置publicintgetDuration()获得所播放视频的总时间publicbooleanisPlaying()判断是否正在播放视频publicvoidpause()暂停视频播放publicvoidseekTo(intmsec)设置播放位置publicvoidsetMediaController(MediaControllercontroller)设置媒体控制器publicvoidsetVideoPath(Stringpath)设置path路径所代表的视频文件publicvoidsetVideoURI(Uriuri)加载Uri对应的视频文件publicvoidstart()开始播放视频文件publicvoidstopPlayback()停止回放视频文件2.MediaController类MediaController是一个包含了媒体播放器(MediaPlayer)控件的视图。包含了一些典型的按钮,比如“播放(Play)”、“暂停(Pause)”、“倒带(Rewind)”、“快进(FastForward)”与进度滑动器(ProgressSlider)。它管理媒体播放器(MediaPlayer)的状态以保持控件的同步。11.2.2视频播放流程VideoView是一个位于android.widget包下的组件,我们使用这个组件来完成视频的播放。使用VideoView播放视频文件流程。添加VideoView控件创建MediaController对象NewMediaController加载视频文件VideoView.setVideoPath(Stringpath)设置MediaControllerVideoView.setMediaController()设置MediaController与MediaPlayer关联MediaController.setMediaPlayer()11.3音频与视频的录制Android系统除了提供相关类,实现音频与视频的播放之外,还提供了MediaRecorder类实现音频视频的录制,但是需要有硬件设备的支持。11.3.1音频录制手机一般都提供了麦克风硬件,而Android系统就可以利用该硬件录制音频。使用MediaRecorder类录制音频用到的相关方法。方法名称方法说明publicMediaRecorder()默认构造方法publicvoidprepare()准备记录器开始捕捉和编码数据publicvoidrelease()释放与此相关的MediaRecorder对象资源publicvoidsetAudioEncoder(intaudio_encoder)设置音频编码格式publicvoidsetAudioSource(intaudio_source)设置声音来源publicvoidsetOutputFile(Stringpath)设置音频文件保存位置publicvoidsetOutputFormat(intoutput_format)设置所录制的音频文件的格式publicvoidstart()开始录制publicvoidstop()结束录制11.3.2视频录制MediaRecorder除了可以录制音频以外,还可以录制视频。使用MediaRecorder录制视频与录制音频的步骤基本相同。只是录制视频不仅需要录制声音,还需要录制图像。方法名称方法说明publicvoidsetVideoEncoder(intvideo_encoder)设置视频编码格式publicvoidsetVideoFrameRate(intrate)设置视频的帧率publicvoidsetVideoSize(intwidth,intheight)设置视频的宽度和高度publicvoidsetVideoSource(intvideo_source)设置视频来源11.4相机Camera在Android多媒体应用开发中,我们可以调用系统功能拍照,同样需要硬件设备(摄像头)支持。Android支持的图像格式有JPEG、GIF、PNG和BMP。11.5小结本章内容主要介绍了Android系统中多媒体的应用开发。其中,使用MediaPlayer播放音频、使用VideoView播放视频的开发都比较简单,读者容易掌握。音频、视频以及图像的采集是本章难点,需要读者多多练习,以便熟练掌握。
本文标题:零点起飞学Android开发之Android多媒体应用
链接地址:https://www.777doc.com/doc-3541824 .html