为了账号安全,请及时绑定邮箱和手机立即绑定

AudioRecord对象未初始化

AudioRecord对象未初始化

慕桂英3389331 2019-09-20 15:23:04
在下面的代码中,我的audioRecord对象没有初始化。我尝试将其移动到该onCreate方法并使其成为全局的。我已记录状态,并返回一个值1,表示可以使用。调试器表示startRecording正在未初始化的对象上调用它。它还说它无法获得音频源。为什么我会收到这些错误?    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());        }
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

我有同样的问题,通过推杆解决了


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

进入清单。


从Lollipop开始,您还需要具体询问用户的每个权限。因为他们可能已经撤销了他们。确保授予权限。


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 608 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信