|
@@ -5,10 +5,14 @@ import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
import android.content.SharedPreferences;
|
|
|
import android.graphics.drawable.AnimationDrawable;
|
|
|
+import android.media.MediaPlayer;
|
|
|
+import android.media.MediaRecorder;
|
|
|
import android.net.ConnectivityManager;
|
|
|
import android.net.NetworkInfo;
|
|
|
+import android.os.Environment;
|
|
|
import android.os.Handler;
|
|
|
import android.os.Message;
|
|
|
+import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.widget.ImageView;
|
|
|
|
|
@@ -39,6 +43,9 @@ import org.greenrobot.eventbus.Subscribe;
|
|
|
import org.greenrobot.eventbus.ThreadMode;
|
|
|
import org.json.JSONObject;
|
|
|
|
|
|
+import java.io.File;
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
import butterknife.Bind;
|
|
|
import butterknife.OnClick;
|
|
|
import okhttp3.Call;
|
|
@@ -94,6 +101,11 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
|
|
|
serialPortUtil = MyApplication.serialPortUtil;
|
|
|
serialPortUtil.setOnDataReceiveListener(this);
|
|
|
serialPortUtil.setOnDataReceiveStringListener(this);
|
|
|
+
|
|
|
+ File file = new File(TEST_AUDIO_FILE_PATH);
|
|
|
+ if (!file.exists()) {
|
|
|
+ file.mkdir();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -404,6 +416,14 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
|
|
|
}).start();*/
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private boolean isRecord = false;
|
|
|
+ private boolean isPlay = false;
|
|
|
+ public static final String TEST_AUDIO_FILE_PATH = Environment.getExternalStorageDirectory().getPath() + "/test";
|
|
|
+ private String audiofilePath;
|
|
|
+ private MediaRecorder mediaRecorder;
|
|
|
+ private MediaPlayer mediaPlayer;
|
|
|
+
|
|
|
/**
|
|
|
* 监听呼叫按钮 buffer[5] 如果按下则 放松注册信息给后台
|
|
|
*/
|
|
@@ -434,20 +454,23 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
|
|
|
new Thread(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
- final boolean pingStatus = NetUtil.ping("192.168.101.1", 2, null);
|
|
|
- runOnUiThread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- if (pingStatus) {
|
|
|
- ToastUtil.showToast("连接192.168.101.1成功!");
|
|
|
- } else {
|
|
|
- ToastUtil.showToast("连接192.168.101.1失败, 请检查设备!");
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ boolean pingStatus = NetUtil.ping("192.168.101.1", 2, null);
|
|
|
+ if (pingStatus) {
|
|
|
+ showTips("连接192.168.101.1成功!");
|
|
|
+ } else {
|
|
|
+ showTips("连接192.168.101.1失败, 请检查设备!");
|
|
|
+ }
|
|
|
}
|
|
|
}).start();
|
|
|
}
|
|
|
+
|
|
|
+ //测试麦克风录音
|
|
|
+ if (buffer[6] == 2) {
|
|
|
+ if (!isRecord && !isPlay) {
|
|
|
+ startRecording();
|
|
|
+ updateHandler.sendEmptyMessageDelayed(111, 3000);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -464,6 +487,86 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void showTips(final String tips) {
|
|
|
+ runOnUiThread(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ ToastUtil.showToast(tips);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void startRecording() {
|
|
|
+ showTips("开始录音");
|
|
|
+ new Thread(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ mediaRecorder = new MediaRecorder();
|
|
|
+ try {
|
|
|
+ audiofilePath = TEST_AUDIO_FILE_PATH + "/" + System.currentTimeMillis() + "_test.mp3";
|
|
|
+
|
|
|
+ mediaRecorder.setOutputFile(audiofilePath);
|
|
|
+ mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 设置MediaRecorder的音频源为麦克风
|
|
|
+ mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);// 设置MediaRecorder录制的音频格式
|
|
|
+ mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);// 设置MediaRecorder录制音频的编码为amr
|
|
|
+ mediaRecorder.prepare();
|
|
|
+ mediaRecorder.start();
|
|
|
+ } catch (IOException e) {
|
|
|
+ Log.i("error", "call startAmr(File mRecAudioFile) failed!" + e.getMessage());
|
|
|
+ } finally {
|
|
|
+ isRecord = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).start();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void stopRecord() {
|
|
|
+ showTips("结束录音");
|
|
|
+ new Thread(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ try {
|
|
|
+ mediaRecorder.stop();
|
|
|
+ mediaRecorder.release();
|
|
|
+ mediaRecorder = null;
|
|
|
+ Thread.sleep(200);
|
|
|
+
|
|
|
+ mediaPlayer = new MediaPlayer();
|
|
|
+ mediaPlayer.reset();
|
|
|
+ mediaPlayer.setDataSource(audiofilePath);
|
|
|
+ mediaPlayer.setVolume(1.0f, 1.0f);
|
|
|
+ mediaPlayer.prepare();
|
|
|
+ mediaPlayer.start();
|
|
|
+ mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
|
|
|
+ @Override
|
|
|
+ public void onCompletion(MediaPlayer player) {
|
|
|
+ File file = new File(audiofilePath);
|
|
|
+ if (file.exists()) {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+ mediaPlayer.release();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
|
|
|
+ @Override
|
|
|
+ public boolean onError(MediaPlayer player, int what, int extra) {
|
|
|
+ File file = new File(audiofilePath);
|
|
|
+ if (file.exists()) {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+ mediaPlayer.release();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ isPlay = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).start();
|
|
|
+ }
|
|
|
+
|
|
|
@SuppressLint("HandlerLeak")
|
|
|
Handler updateHandler = new Handler() {
|
|
|
public void handleMessage(Message msg) {
|
|
@@ -475,6 +578,11 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
|
|
|
ethreboot();
|
|
|
dateRefresh();
|
|
|
break;
|
|
|
+ case 111:
|
|
|
+ if (!isPlay) {
|
|
|
+ stopRecord();
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
};
|