近期因为工作的原因,写了一个如题的测试例子,本人从事android时间有限,请各位慢点拍砖、、
主程序如下:
package com.kingtone.www.record;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.net.Socket;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.kingtone.www.record.util.EnvironmentShare;
/**
*
* @author YuanLiangFeng 袁良锋
*
* 本类主要实现 录音至SD卡上,并且可以实现录音的播放
*/
public class Main extends Activity implements OnClickListener {
// 多媒体播放器
private MediaPlayer mediaPlayer;
// 多媒体录制器
private MediaRecorder mediaRecorder = new MediaRecorder();
// 音频文件
private File audioFile;
// 传给Socket服务器端的上传和下载标志
private final int UP_LOAD = 1;
private final int DOWN_LOAD = 2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获得三个按钮的UI控件
Button btnStart = (Button) findViewById(R.id.btnStart);
Button btnStop = (Button) findViewById(R.id.btnStop);
Button btnPlay = (Button) findViewById(R.id.btnPlay);
Button btnUpLoad = (Button) findViewById(R.id.btnUpLoad);
Button btnDownLoad = (Button) findViewById(R.id.btnDownLoad);
btnStart.setOnClickListener(this);
btnStop.setOnClickListener(this);
btnPlay.setOnClickListener(this);
btnUpLoad.setOnClickListener(this);
btnDownLoad.setOnClickListener(this);
}
@Override
public void onClick(View view) {
try {
String msg = "";
switch (view.getId()) {
// 开始录音
case R.id.btnStart:
if (!EnvironmentShare.haveSdCard()) {
Toast.makeText(this, "SD不存在,不正常录音!!", Toast.LENGTH_LONG).show();
}else{
// 设置音频来源(一般为麦克风)
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
// 设置音频输出格式(默认的输出格式)
mediaRecorder
.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
// 设置音频编码方式(默认的编码方式)
mediaRecorder
.setAudioEncoder(MediaRecorder.