2
我的問題是:當通話結束時出現錯誤。我認爲這與Context有關。我在這種情況下的問題Sound Recorder Widget doesnt stop recording請幫幫我!停止錄製和上下文
public class Call extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();
if(null == bundle) return;
String state = bundle.getString(TelephonyManager.EXTRA_STATE);
if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
{
mFileName = "/sdcard/Record.3gp";
MediaRecorder mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {mRecorder.prepare();}
catch (IOException e){}
mRecorder.start();
}
if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_IDLE))
{
mRecorder.stop();
mRecorder.release();
mRecorder = null;
}
}
}
這是logcat的:
10-01 07:13:28.054: ERROR/AndroidRuntime(553): Uncaught handler: thread main exiting due to uncaught exception
10-01 07:13:29.134: ERROR/AndroidRuntime(553): java.lang.RuntimeException: Unable to start receiver xxx.xxx.xxx.Call: java.lang.NullPointerException
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2646)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at android.app.ActivityThread.access$3100(ActivityThread.java:119)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at android.os.Handler.dispatchMessage(Handler.java:99)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at android.os.Looper.loop(Looper.java:123)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at java.lang.reflect.Method.invokeNative(Native Method)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at java.lang.reflect.Method.invoke(Method.java:521)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at dalvik.system.NativeStart.main(Native Method)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): Caused by: java.lang.NullPointerException
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at xxx.xxx.xxx.Call.onReceive(Call.java:49)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2637)
10-01 07:13:29.134: ERROR/AndroidRuntime(553): ... 10 more
10-01 07:13:33.184: ERROR/audio_input(31): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
10-01 07:13:33.184: ERROR/audio_input(31): VerifyAndSetParameter failed
謝謝您的回答,但我的問題沒有得到解決。我按照你寫給我的方式做了,但錄音從不停止,因爲如果(mRecorder!= null)從未不滿足。如果我刪除條件(mRecorder!= null),那麼我又會得到錯誤。 – user881902
我解決了這個問題! – user881902