gpt4 book ai didi

Android AudioRecord 初始化失败

转载 作者:太空狗 更新时间:2023-10-29 15:32:13 25 4
gpt4 key购买 nike

我在使用 AudioRecord for Android 时遇到了问题。我已经尽可能多地在网上找到有关它的信息,但我似乎无法进行良好的初始化。我试过 Android 2.2 模拟器、1.5 模拟器和我的手机,运行 Froyo 的 HTC Incredible。模拟器和我的手机初始化失败。

我尝试过 8000、11025 和 44100 的采样率,CHANNEL_IN_MONO/STEREO 和 CHANNEL_CONFIGURATION_MONO/STEREO 的格式,8 位和 16 位编码(8 位使 getMinBufferSize 失败),以及 MIC 和 DEFAULT 的 AudioSource。在运行获取状态(初始化失败)后,所有结果都会导致变量 test 变为 0。

从我读过的所有内容来看,这似乎应该正确地初始化对象。我玩过 buflen 上的乘数,让它的范围从 512(函数的结果)到 102400,因为我听说 HTC 设备需要 8192 以上的值。

为了测试我的问题,我创建了一个新的小项目,尽可能简单地重现我的问题。我将所需的常量提取到本地整数中,然后运行构造函数并访问 getState 方法以检查它是否有效。

package com.example.audiorecordtest;

import android.app.Activity;
import android.os.Bundle;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;

public class audioRecordTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

int freq =8000;
int chan = AudioFormat.CHANNEL_IN_MONO;
int enc = AudioFormat.ENCODING_PCM_16BIT;
int src = MediaRecorder.AudioSource.MIC;
int buflen = AudioRecord.getMinBufferSize(freq, chan, enc);
AudioRecord ar = new AudioRecord(src,freq,chan,enc,20*buflen);
int test = ar.getState();
}
}

最佳答案

我认为他的意思是您需要 list 中的 RECORD_AUDIO 权限:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

这对我有用。

关于Android AudioRecord 初始化失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161666/

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