Android AudioRecord - 第二次不会初始化
Hej,我目前正试图让AudioRecord工作。因为我需要一个更大的项目。但它似乎搞得很多。
我一直在尝试很多东西,所以当我追踪这个bug时我回到了基础。
我正在使用我的三星Galaxy S作为我的调试设备。
我的问题是,第一次重启我的设备后,我可以初始化我创建的AudioRecord对象没有问题。
但是第二次运行它时,它不会初始化AudioRecord对象。
我已经尝试了几个频率,fyi。
这是我的代码:
package android.audiorecordtest;
import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class AudioRecordTest extends Activity {
int frequency;
AudioRecord audRec;
TextView txtVw;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtVw = (TextView) findViewById(R.id.txtVw);
frequency=8000;
int bufferSize=(AudioRecord.getMinBufferSize(frequency, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT))*2;
if (bufferSize>0) {
audRec = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
int status = audRec.getState();
if (status == AudioRecord.STATE_INITIALIZED) {
txtVw.setText("Initialized" + frequency);
} else {
txtVw.setText("Not Initialized i=" + frequency);
}
}
经过几个小时的浏览logcat信息后,我发现了这个事件
02-28 10:46:37.048: DEBUG/dalvikvm(4477): GC_EXPLICIT freed 1801 objects / 98944 bytes in 97ms
02-28 10:46:37.048: VERBOSE/AudioRecord(4477): stop
这似乎“释放了对AudioRecord的本机保留。
所以我尝试使用我的Audiorecord object.release()进行finalize的覆盖。这没有工作..任何人有任何想法?
没有找到相关结果
已邀请:
4 个回复
倪蕊悲潍
添加此项后,每次启动活动时,audioRecord似乎都会正确初始化。
吠强祷豪硅
然后,如果您有一个记录器线程,您可以按如下方式使用它:
埃庐
哩翔购