根据需求要来实现一个类似微信的语音通话效果,想来下,现在来实现一个简单那的模型,可供遇到的人可作参考:
废话不多说就直接贴代码吧:
RecoderDemo.java:
package com.jankey.record;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.LinearLayout;
/**
*
* @author jankey
*
*/
public class RecordDemo extends Activity {
private Button record;
private MyDialog dialog;
private AudioRecorder mr;
private LinearLayout linear;
private MediaPlayer mediaPlayer;
private File directory;
private Button btn = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.record_audio);
mr = new AudioRecorder("jankey");
record = (Button) this.findViewById(R.id.record);
linear = (LinearLayout) this.findViewById(R.id.showViews);
record.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
dialog = new MyDialog(RecordDemo.this, "正在录音");
try {
record.setText("正在录音...");
mr.start();
} catch (IOException e) {
e.printStackTrace();
}
dialog.show();
return false;
}
});
record.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
try {
mr.stop();
record.setText("录音停止!");
} catch (IOException e) {
e.printStackTrace();
}
dialog.dismiss();
showView();
break;
}