在Android SDK中有与之相关的类:android.media.MediaRecorder
当然,因为模拟器上没有提供必要的硬件设施,所以在
学习过程中并不能实现。
Media能够播放来自任何地方的文件:一个实际的文件资源、
系统中的一个文件或者是一个可用的
网络链接。
下面介绍如何在自己应用程序中播放一个可用的media音频:
1、将文件放到你的工程的res/raw文件夹中,在这个文件夹中,Eclipse插件将会找到它,同时,会将这个资源与你的R
类相关联起来;
2、创建一个MediaPlayer,并使用MediaPlayer.create与资源相关联起来,之后在实例中使用start()方法。
例如:MediaPlayer mp=MediaPlayer.create(context,R.raw.sound_file_1);
mp.start();
如果要想停止播放,使用stop()方法。如果你想稍后重新播放这段media,你必须在再次使用start()方法之前使用
reset()方法和prepare()方法来操作MediaPlayer对象。(create()第一次调用prepare())
如果想暂停播放,可以使用pause()方法。在你暂停的地方恢复播放功能使用start()方法即可实现。
播放一个文件
下面介绍如何播放一个文件:
1、用new创建一个MediaPlayer实例;
2、调用setDataSource()方法,这个方法有一个String类型的参数,这个String类型的参数包含了你所要播放的
文件的路径-本地文件系统或者是URL;
3、之后,先调用prepare()方法,然后才是start()方法。
例如:
MediaPlayer mp=new MediaPlayer();
mp.setDataSource(PATH_TO_FILE);
mp.prepare();
mp.start();
需要注意的一点是:如果你传递的是一个URL方式的文件,那么这个文件必须是可以下载的,并且是不间断的,简单地
说就是在播放的同时进行着下载。
下面介绍如何录制media音频资源:
1、使用new创建一个实例Android.media.MediaRecorder;
2、创建一个Android.content.ContentValues实例并设置一些标准的属性,像TITLE,TIMESTAMP,最重要的是MIME_TYPE;
3、创建一个要放置的文件的路径,这可以通过Android.content.ContentResolver在内容数据库中来创建一个入
口,并且自动地标志一个取得这个文件的路径。
4、使用MediaRecorder.setAudioSource()方法来设置音频资源;
linuxidc这将会很可能使用到MediaRecorder.AudioSource.MIC;
5、使用MediaRecorder.setOutputFormat()方法设置输出文件格式;
6、用MediaRecorder.setAudioEncoder()方法来设置音频编码;
7、最后,prepare()和start()所录制的音频,stop()和release()在要结束的时候调用。
下面是一个实例:
recorder=new MediaRecorder();
ContentValues values=new ContentValues(3);
values.put(MediaStore.MediaColumns.TITLE,SOME_NAME_HERE);
values.put(MediaStore.MediaColumns.TIMESTAMP,System.currentTimeMillis());
values.put(MediaStore.MediaColumns.MIME_TYPE,recorder.getMimeContentType();
ContentResolver contentResolver=new ContentResolver();
Uri base=MediaStore.Audio.INTERNAL_CONTENT_URI;
Uri newUri=contentResolver.insert(base,values); //在所给定的URL中向一个表格插入一列数据
//函数原型:final Uri insert(Url,ContentValues values);
if(newUri==null){
//这里需要异常处理,我们在这里不能创建一个新的内容入口
}
String path=contentResolver.getDataFilePath(newUri);
//可以使用setPreviewDisplay()来陈列一个preview 来使View适合
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.O