在下面的代碼中,我的audioRecord對(duì)象沒(méi)有初始化。我嘗試將其移動(dòng)到該onCreate方法并使其成為全局的。我已記錄狀態(tài),并返回一個(gè)值1,表示可以使用。調(diào)試器表示startRecording正在未初始化的對(duì)象上調(diào)用它。它還說(shuō)它無(wú)法獲得音頻源。為什么我會(huì)收到這些錯(cuò)誤? package com.tecmark; import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import android.app.Activity; import android.media.AudioFormat; import android.media.AudioRecord; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.widget.TextView; public class recorder extends Activity { private Thread thread; private boolean isRecording; private AudioRecord recorder; private FileOutputStream os; private BufferedOutputStream bos; private DataOutputStream dos; private TextView text; private int audioSource = MediaRecorder.AudioSource.MIC; private int sampleRate = 22050; private int channel = AudioFormat.CHANNEL_CONFIGURATION_MONO; private int encoding = AudioFormat.ENCODING_PCM_16BIT; private int result = 0; private int bufferSize; private byte[] buffer; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.v("onCreate", "layout set, about to init audiorec obj"); text = (TextView)findViewById(R.id.TextView01); bufferSize = AudioRecord.getMinBufferSize(sampleRate,channel,encoding); buffer = new byte[bufferSize]; recorder = new AudioRecord(audioSource, sampleRate,channel,encoding, AudioRecord.getMinBufferSize(sampleRate, channel,encoding)); Log.i("recorder obj state",""+recorder.getRecordingState()); }
AudioRecord對(duì)象未初始化
慕桂英3389331
2019-09-20 15:23:04