gpt4 book ai didi

Android AudioRecord - 不会第二次初始化

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:37 24 4
gpt4 key购买 nike

嘿,我目前正在尝试让 AudioRecord 正常工作。因为我在一个更大的项目中需要它。但它似乎搞砸了很多。我一直在尝试很多事情,所以当我追踪到这个错误时,我回到了基础。我正在使用 Samsung Galaxy S 作为我的调试设备。

我的问题是,在我的设备重新启动后第一次我可以毫无问题地初始化我创建的 AudioRecord 对象。但是我第二次运行它时,它不会初始化 AudioRecord 对象。我试过几个频率,仅供引用。

这是我的代码:

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 的 native 保留。所以我尝试用我的 Audiorecord object.release() 覆盖 finalize。但这没有用..任何人有任何想法吗?

最佳答案

我能够重现您的问题(在三星手机上)。我添加了一个释放记录的 onDestroy() 方法:

@Override
public void onDestroy() {
super.onDestroy();
System.out.println("OnDestroy");
audRec.release();
}

添加这个之后,audioRecord 似乎在每次 Activity 启动时都正确初始化。

关于Android AudioRecord - 不会第二次初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com