我遇到一个IOExeption
错误,并且我已经检查了几乎所有可以在Google上找到的方法,但仍然无法解决。
public class SoundMeter {
private MediaRecorder mRecorder = null;
public void start(Context context, Activity activity) {
if (ActivityCompat.checkSelfPermission(context, RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{RECORD_AUDIO},
1);
}
if (ActivityCompat.checkSelfPermission(context, WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{WRITE_EXTERNAL_STORAGE},
2);
}
if (mRecorder == null) {
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile("/storage/emulated/0");
mRecorder.setAudioChannels(1);
mRecorder.setAudioSamplingRate(44100);
mRecorder.setAudioEncodingBitRate(192000);
mRecorder.prepare();
mRecorder.start();
}
}
}
这是我的主要活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SoundMeter sm = new SoundMeter();
sm.start(getApplicationContext(), this);
}
}
我仍然是此类领域的初学者,因此在我的代码中它们可能有太多问题。