Java MediaRecorder:在无效状态下调用停止:4
我正在创建一个呼叫记录应用程序,当我试图停止呼叫记录时,java中的调试控制台说:“MediaRecorder在无效状态下停止呼叫:4”我在Google上搜索了很多,但找不到任何可以帮助我的东西!我已经在使用Java MediaRecorder:在无效状态下调用停止:4,java,android,Java,Android,我正在创建一个呼叫记录应用程序,当我试图停止呼叫记录时,java中的调试控制台说:“MediaRecorder在无效状态下停止呼叫:4”我在Google上搜索了很多,但找不到任何可以帮助我的东西!我已经在使用录制音频和写入外部存储权限!以下是我的部分代码: private class PhoneCallListener extends PhoneStateListener { private boolean isPhoneCalling = false; @SuppressWar
录制音频
和写入外部存储
权限!以下是我的部分代码:
private class PhoneCallListener extends PhoneStateListener {
private boolean isPhoneCalling = false;
@SuppressWarnings("deprecation")
@Override
public void onCallStateChanged(int state, final String incomingNumber) {
// TODO Auto-generated method stub
super.onCallStateChanged(state, incomingNumber);
String path = Environment.getExternalStorageDirectory()+"/callrec/";
final MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path+"/TEST00000000011110.M4A");
if (TelephonyManager.CALL_STATE_RINGING == state) {
}
if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
isPhoneCalling = true;
try {
recorder.prepare();
recorder.start();
} catch (Exception e) {
}
}
if (TelephonyManager.CALL_STATE_IDLE == state) {
if (isPhoneCalling) {
try {
recorder.stop();
recorder.reset();
recorder.release();
} catch (Exception e) {
// TODO: handle exception
}
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(
getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
isPhoneCalling = false;
}
}
}
}
最后我找到了解决问题的方法! 我创建了一个: 公共空间记录器() 在我的课堂上,当我想录制音频时,请呼叫它 我还创建了一个停止录制的函数! 我希望这对你有用!
而且这个MediaRecorder API在android 2.3.3到4.3上运行良好 我的问题没有解决,请有人帮帮我!:(如果您发现问题没有得到回答,请不要只是重新提问,编辑原始问题以澄清问题,并展示您自己为解决问题所做的持续努力。此外,向智者说一句话;文本像“PLZ”一样说话,并且用所有大写字母书写很少成功