MediaPlayer

来源:互联网 发布:数据倒卖 编辑:程序博客网 时间:2024/06/09 14:55

使用MediaPlayer播放音频:
当程序控制MediaPlayer对象装载音频完成后,程序可以调用MediaPlayer的如下三个方法进行播放:
start() :开始或回复播放:
stop():停止播放》
pause()暂停播放。

为了让MediaPlayer来装载指定音频文件,MediaPlayer提供了简单的静态方法:
static MediaPlayer create(Context context , Uri uri): 从指定Uri来装载音频文件,
并返回新创建的MediaPlayer对象。
static MediaPlayer create(Context context ,int resid ): 从resid资源id文件对应的资源文件
中装载音频文件,并返回新创建的MediaPlayer对象。

   如果程序需要使用MediaPlayer循环播放多个音频文件,使用MediaPlayer的静态create方法就不太合适。此时可通过MediaPlayer的setDataSource()方法来装载指定的音频文件。MediaPlayer提供了如下方法来指定装载相应的音频文件:    void setDataSource (String path) : 指定装载path路径代表的文件。    void setDataSource(FileDescriptor fd,long offset,long length);指定装载fd所代表的文件        中从offset开始、长度为length的文件内容。    void setDataSource(FileDescriptor fd) 指定装载fd所代表的文件    void setDataSource(Context context,Uri uri)指定装载uri所代表的文件。执行了setDataSource后,MediaPlayer并未真正去装载那些音频文件,还需要调用MediaPlayer   的perpare()方法去准备音频文件。所谓准备就是让MediaPlayer真正装载音频文件。   因此使用已有的MediaPlayer对象装载下一首歌曲的代码模块为:      mediaplayer.reset();      mediaplayer.setDataSource("/mnt/sdcard/next.mp3");      mediaplayer.prepare();      mediaplayer.start();mediaplayer提供了一些绑定事件监听器的方法:   setOnCompletionListener(MediaPlayer.OnCompletionListener listener):为MediaPlayer的播放      完成事件绑定事件监听器。

总结:归纳MediaPlayer播放不同来源的音频文件。
1、播放应用的资源文件需要两步即可:
调用MediaPlayer的create()方法加载指定资源文件。
调用MediaPlayer的start pause stop 等方法控制播放即可。
MediaPlayer mediaplayer = MediaPlayer.create(this,R.raw.song);
mediaplayer.start();

2、播放应用的原始资源文件:
调用Context的getAssets()方法获取应用的AssetManager。
调用AssetManager对象的openFd(String name)方法打开指定的原生资源,该方法返回一个AssetFileDescriptor
对象。
调用AssetFileDescriptor的getFileDescriptor() getStartOffset()和getLength方法来获取音频文件的
FileDescriptor、开始位置、长度等。
创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource方法来装载音频资源。
调用MediaPlayer对象的prepare方法准备音频。
调用MediaPlayer的start pause stop 等方法控制播放即可。

3、播放外部存储器上音频文件。步骤
创建MediaPlayer对象,并调用MediaPlayer对象的setDataSource(String path)方法来装载音频资源文件。
调用MediaPlayer对象的prepare方法准备音频。
调用MediaPlayer的start pause stop 方法控制播放即可。
MediaPlayer mediaplayer = new MediaPlayer();
mediaplayer.setDataSource(“/mut/sdcard/song.mp3”);
mediaplayer.prepare();
mediaplayer.start();

4、播放来自网络的音频文件有两种方法:
(1);直接调用MediaPlayer的静态create(Context context,URL uri)
(2):调用MediaPlayer的setDataSource(Context context,Uri uri)装载指定Uri对应的音频文件,
步骤:1、根据网络上的音频文件所在的位置创建Uri对象。
2、创建MediaPlayer对象调用MediaPlayer对象的setDataSource()方法装载Uri的音频文件
3、调用MediaPlayer对象的prepare方法准备音频。
4、调用MediaPlayer的start pause stop 方法控制播放即可。

             eg: Uri uri = Uri.parse("http://www.crazyit.org/adb.mp3");                 MediaPlayer  mediaplayer = new MediaPlayer();                 mediaplayer.setDataSource(this,uri);                 mediaplayer.prepare();                 mediaplayer.start();

使用VideoView播放视频:
为了在Android中播放声音,Android提供了VideoView组件,他就是一个位于Android.widget包下的组件,它的
作用于ImageView类似,只是ImageView用于显示图片,而VideoView用于播放视频。
步骤如下:1、在界面中定义VideoView组件,或在程序中创建VideoView组件。
2、调用VideoView的如下两个方法来加载指定视频。
setVideoPath(String path)加载path文件所代表的视频。
setVideoURL(URL url)加载uri所对应的视频。
3、调用VideoView的start stop pause 方法来控制视频播放。
实际上与videoview一起结合使用的还有一个MediaController类,它的作用是提供一个友好的图形控制界面,
通过控制界面来控制视频的播放。
MediaController mediacontroller = new MediaController(this);
videoView.setMediaController(mediacontroller);

使用MediaRecorder录制视频:
Android中录制音频,Android手机提供了麦克风硬件,Android提供了MediaRecorder类,使用MediaRecorder
录制音频过程简单,步骤如下:
1、创建MediaRecorder对象。
2、调用MediaRecorder对象的setAudioSource方法来设置声音来源,一般传入
MediaRecorder.AudioSource.MIC 参数指定录制来麦克风的声音。
3、调用MediaRecorder对象的setOutPutFormat()设置所录制的音频文件的格式。
4、调用MediaRecorder对象的setAudioEncoder() setAudioEncodingBitRate(int bitRate)
setAudioSamplingRate(int samplingRate)设置所录制声音的编码格式,编码位率,采样率等
这些参数可以控制录制声音的品质,文件大小,品质越好,声音文件越大。
5、调用MediaRecorder的setOutPutFile(String path )方法设置录制的音频文件保存位置,
6、调用MediaRecorder的prepare方法准备录制
7、调用MediaRecorder对象的start方法开始录制。
8、录制完成,调用MediaRecorder对象的stop方法停止录制,并调用release方法释放资源。

0 0