视频录制功能正在走来,在Androidsdk中有与之相关的类:android.media.MediaRecorder。当然,因为模拟器上没有提供必要的硬件设施,所以在学习过程中并不能实现。Media能够播放来自任何地方的文件:一个实际的文件资源,系统中的一个文件或者是一个可用的网络链接。

2.1如何播放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()方法。

Java代码:

1.MediaPlayer mp=new MediaPlayer();

2.mp.setDataSource(PATH_TO_FILE);

3.mp.prepare();

4.mp.start();

5.需要注意的一点是:如果你传递的是一个URL方式的文件,那么这个文件必须是可以下载的,并且是不间断的,简单地说就是在播放的同时进行着下载。

2.2如何录制media音频资源

1、使用new创建一个实例android.media.MediaRecorder;

2、创建一个android.content.ContentValues实例并设置一些标准的属性,像TITLE,TIMESTAMP,最重要的是MIME_TYPE;

3、创建一个要放置的文件的路径,这可以通过android.content.ContentResolver在内容数据库中来创建一个入口,并且自动地标志一个取得这个文件的路径。

4、使用MediaRecorder.setAudioSource()方法来设置音频资源;这将会很可能使用到MediaRecorder.AudioSource.MIC;

5、使用MediaRecorder.setOutputFormat()方法设置输出文件格式;

6、用MediaRecorder.setAudioEncoder()方法来设置音频编码;

7、最后,prepare()和start()所录制的音频,stop()和release()在要结束的时候调用。

2.3实例分析

Java代码:

1.recorder=new MediaRecorder();

2.ContentValues values=newContentValues(3);

3.values.put(MediaStore.MediaColumns.TITLE,SOME_NAME_HERE);

4.values.put(MediaStore.MediaColumns.TIMESTAMP,System.currentTimeMillis());

5.values.put(MediaStore.MediaColumns.MIME_TYPE,recorder.getMimeContentType();

6.ContentResolver contentResolver=newContentResolver();

7.Uri base=MediaStore.Audio.INTERNAL_CONTENT_URI;

8.Uri newUri=contentResolver.insert(base,values);

9.//在所给定的URL中向一个表格插入一列数据

10.//函数原型:final Uri insert(Url,ContentValues values);

11.if(newUri==null){

12.//这里需要异常处理,我们在这里不能创建一个新的内容入口

13.}

14.Stringpath=contentResolver.getDataFilePath(newUri);

15.//可以使用setPreviewDisplay()来陈列一个preview来使View适合

16.recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

17.recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

18.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

19.recorder.setOutputFile(path);

20.recorder.prepare();

21.recorder.start();

停止录制:

Java代码:

1.recorder.stop();

2.recorder.release();

在录制音频资源的过程中,使用到了ContentValues这个类,下面来解说这个类。

ContentValues这个类是用来存储一系列的值的,这些值要求ContentResolver能够process的。

ContentValues(int size)构造函数使用所给定的初始值创建一个空系列的值。

ContentValues(ContentValues from)这个构造函数创建一个从给定的ContentValues中来进行复制所产生的值。

这个类有如下的常用方法:

void clear()删除所有的值

boolean containsKey(String key)如果这个对象有已命名的值就返回真

int describeContents()描述值类型

Object get(String key)获得值

void put(String key,Integer value)增加一个值到对应的set中

还有一个类就是ContentResolver,这个类想内容模型提供了应用程序数据。

转自:http://www.linuxidc.com/Linux/2011-09/42420.htm

android如何播放和录制音频的更多相关文章

  1. Android录制音频的三种方式

    对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...

  2. Android MediaRecorder录制音频

    今天介绍一下在Android中怎么录制音频,在Android中使用MediaRecorder来录制音频,步骤: 1.创建MediaRecorder对象. 2.调用MediaRecorder对象的set ...

  3. Android MediaPlayer播放一般音频与SoundPool播放短促的音效

    [1]使用MediaPlayer实现一般的音频播放 MediaPlayer播放通常的音频文件 MediaPlayer mediaPlayer = new MediaPlayer(); if (medi ...

  4. Android音频开发之——如何播放一帧音频

    本文重点关注如何在Android平台上播放一帧音频数据.阅读本文之前,建议先读一下<Android音频开发(1):基础知识>,因为音频开发过程中,经常要涉及到这些基础知识,掌握了这些重要的 ...

  5. Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频

    Android设备实现录制音频的简单demo 转载请注明; http://blog.csdn.net/u013670933/article/details/26089487 代码例如以下: publi ...

  6. 【转】解决在Android设备播放音频与其他应用重音的问题,并监听耳机的控制按钮

    概述 在安卓开发中免不了需要播放一点音乐了,音频了.但是这时候有别的应用正在播放,这时候就会出现重音的现象,完全影响用户体验,我们的项目就遇上了这样的尴尬,然后查找了一些文档,记录一下: 管理音频焦点 ...

  7. 【Android】播放音频的几种方式介绍

    接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...

  8. Android开发笔记——视频录制播放常见问题

    本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转 一.视频录制流程 以微信为例,其录制触发为按下(住) ...

  9. MFC录制音频和播放音频

    一.录制音频 在windows中提供了相应的API函数(waveIn这个族的函数)实现录音功能:在使用这些函数时,一定要引入相应的头文件 #include <windows.h> #inc ...

随机推荐

  1. quartus使用笔记

    quartus中默认顶层文件名与工程名相同,或自行设置顶层文件:project->set as top-leval entity 顶层模块名要与工程名相同 RTL是编译后的结果,并没有与实际的硬 ...

  2. Android(Xamarin)之旅(二)

    新的一年,新的开始,2016,我要做什么,大家要做什么,啦啦啦. OK,上篇已经介绍了几个简单的控件,这次,我们继续说说控件.但是可能有人认为这有什么难的,问题不在这里,而在于,如果你注意了每一个空间 ...

  3. Java基础语法总结

    1.关键字:每门编程语言都有一些保留的单词,用于定义该门语言,这些单词对编译器有特殊含义,并且不能作为标识符,这就是编程语言的关键字. abstract.boolean.break.byte.case ...

  4. 清空form表单下所有的input值-------------jquery

    $(':input','#' + formid).not(':button, :submit, :reset').val('').removeAttr('checked').removeAttr('s ...

  5. Ubuntu设置squid代理

    1.安装squid sudo apt-get install squid 2,修改配置,增加需要使用代理的ip vi命令修改: vi /etc/squid/squid.conf 图形界面编辑 sudo ...

  6. Response、Request、QueryString,repeater添加,修改,删除数据

    内置对象: Response对象:响应请求,Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response.Write("<script>a ...

  7. Repeater 使用方法

    ItemTemplate: 包含要逐一呈现给数据源中的每个数据项的 HTML 元素和控件 AlternatingItemTemplate: 包含要逐一呈现给数据源中的其他每个数据项的 HTML 元素和 ...

  8. bzoj 1977

    题意:求严格的次小生成树.点n<=100000,m<=300000 思路:很容易想到先做一边最小生成树,然后枚举每条非树边(u, v, w),然后其实就是把u,v路径上小于w的最大边替换成 ...

  9. 我的Linux随笔目录

    现在整理博客的时间少了,大多是在用为知笔记收藏和整理,一次集中发点Linux相关随笔整理和一个目录,是按时间顺序来的.每一篇都是自己用过之后整理的,应用场景已经尽可能的说明了,不明白的可以Q我,上班时 ...

  10. Dynamic CRM 2013学习笔记(四十六)简单审批流的实现

    前面介绍过自定义审批流: Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮 Dynamic ...