Android音频采集.doc

上传人:ni****g 文档编号:544700467 上传时间:2022-11-03 格式:DOC 页数:5 大小:19.18KB
返回 下载 相关 举报
Android音频采集.doc_第1页
第1页 / 共5页
Android音频采集.doc_第2页
第2页 / 共5页
Android音频采集.doc_第3页
第3页 / 共5页
Android音频采集.doc_第4页
第4页 / 共5页
Android音频采集.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Android音频采集.doc》由会员分享,可在线阅读,更多相关《Android音频采集.doc(5页珍藏版)》请在金锄头文库上搜索。

1、Android的多媒体框架包括了对各种通用音频格式进行采集和编码的支持,因此你能够容易的把音频集成到你的应用程序中。如果设备硬件支持,你还能够使用MediaRecorder API来记录音频。本文向你展示如何编写从设备的麦克中采集音频、保存并播放它的应用程序。注意:Android模拟器没有采集音频的能力,但是实际的设备可能提供这种能力。执行音频采集从设备上采集音频比音视频播放要复杂一些,但依然相当简单:1. 创建一个新的android.media.MediaRecorder类的实例;2. 使用MediaRecorder.setAudioSource()方法设置音频源。你可能还想使用MediaR

2、ecorder.AudioSource.MIC;3. 使用MediaRecorder.setOutputFormat()方法设置输出文件格式;4. 使用MediaRecorder.setOutputFile()方法设置输出文件名;5. 使用MediaRecorder.setAudioEncoder()方法设置音频编码;6. 调用MediaRecorder实例上的MediaRecorder.prepare()方法;7. 调用MediaRecorder.start()方法启动音频采集;8. 调用MediaRecorder.stop()方法终止音频采集;9. 使用完MediaRecorder实例后,

3、调用它的MediaRecorder.release()方法。要始终调用这个方法来立即释放资源。示例:录音和播放录音这个例子的类演示了如何建立、启动和终止音频采集,并且播放录音文件。/* * The application needs to have the permission to write to external storage * if the output file is written to the external storage, and also the * permission to record audio. These permissions must be set i

4、n the * applications AndroidManifest.xml file, with something like: * * * * */package com.android.audiorecordtest;import android.app.Activity;import android.widget.LinearLayout;import android.os.Bundle;import android.os.Environment;import android.view.ViewGroup;import android.widget.Button;import an

5、droid.view.View;import android.view.View.OnClickListener;import android.content.Context;import android.util.Log;import android.media.MediaRecorder;import android.media.MediaPlayer;import java.io.IOException;public class AudioRecordTest extends Activity private static final String LOG_TAG = AudioReco

6、rdTest; private static String mFileName = null; private RecordButton mRecordButton = null; private MediaRecorder mRecorder = null; private PlayButton mPlayButton = null; private MediaPlayer mPlayer = null; private void onRecord(boolean start) if (start) startRecording(); else stopRecording(); privat

7、e void onPlay(boolean start) if (start) startPlaying(); else stopPlaying(); private void startPlaying() mPlayer = new MediaPlayer(); try mPlayer.setDataSource(mFileName); mPlayer.prepare(); mPlayer.start(); catch (IOException e) Log.e(LOG_TAG, prepare() failed); private void stopPlaying() mPlayer.re

8、lease(); mPlayer = null; private void startRecording() mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mRecorder.setOutputFile(mFileName); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.A

9、MR_NB); try mRecorder.prepare(); catch (IOException e) Log.e(LOG_TAG, prepare() failed); mRecorder.start(); private void stopRecording() mRecorder.stop(); mRecorder.release(); mRecorder = null; class RecordButton extends Button boolean mStartRecording = true; OnClickListener clicker = new OnClickLis

10、tener() public void onClick(View v) onRecord(mStartRecording); if (mStartRecording) setText(Stop recording); else setText(Start recording); mStartRecording = !mStartRecording; ; public RecordButton(Context ctx) super(ctx); setText(Start recording); setOnClickListener(clicker); class PlayButton exten

11、ds Button boolean mStartPlaying = true; OnClickListener clicker = new OnClickListener() public void onClick(View v) onPlay(mStartPlaying); if (mStartPlaying) setText(Stop playing); else setText(Start playing); mStartPlaying = !mStartPlaying; ; public PlayButton(Context ctx) super(ctx); setText(Start playing); setOnClickListener(clicker); public AudioRecordTest() mFileName = Environment.getExternalStorageDirectory().getAbsolutePath(); mFileName += /audiorecordtest.3gp; Override public void onCreate(Bundle icicle) super.onCreate(icicle); LinearLayout ll = new LinearLayout(this); mRecordButto

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号