Android-MediaRecorder.getMaxAmpliance()始终返回0
我正在开发一个同时播放和捕获声音的应用程序。但是,当我试图获取文件Android-MediaRecorder.getMaxAmpliance()始终返回0,android,Android,我正在开发一个同时播放和捕获声音的应用程序。但是,当我试图获取文件MediaRecorder的振幅时,GetMaxAmplication()始终返回0。这是我正在使用的代码。我查看了各种资源,但什么也找不到 package com.cool.vicky.fullscan.activity; import android.content.Intent; import android.media.MediaPlayer; import android.media.MediaRecorder; im
MediaRecorder的振幅时,GetMaxAmplication()
始终返回0。这是我正在使用的代码。我查看了各种资源,但什么也找不到
package com.cool.vicky.fullscan.activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.cool.vicky.fullscan.R;
import com.joanzapata.iconify.widget.IconButton;
import java.io.File;
import java.io.IOException;
public class MicrophoneTestActivity extends AppCompatActivity {
private ImageView right;
private TextView title;
private IconButton testButton;
private MediaPlayer mediaPlayer;
private Handler handler = new Handler();
private MediaRecorder myAudioRecorder;
private String outputFile = null;
private int amplitude;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_microphone_test);
initMediaRecorder();
initMediaPlayer();
initUI();
}
private void initMediaRecorder() {
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recording.3gp";
Log.d("Path", outputFile);
myAudioRecorder = new MediaRecorder();
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myAudioRecorder.setOutputFile(outputFile);
try {
myAudioRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
}
private void initMediaPlayer() {
mediaPlayer = MediaPlayer.create(this, R.raw.track);
}
private void initUI() {
right = (ImageView) findViewById(R.id.right);
title = (TextView) findViewById(R.id.title);
title.setText("Microphone");
testButton = (IconButton) findViewById(R.id.microphone_test_button);
testButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.start();
myAudioRecorder.start();
handler.postDelayed(new Runnable() {
@Override
public void run() {
amplitude = myAudioRecorder.getMaxAmplitude();
myAudioRecorder.stop();
mediaPlayer.stop();
checkRecorderFile();
}
}, 4000);
}
});
}
private void checkRecorderFile() {
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "recording.3gp");
Log.d("Amplitude", String.valueOf(myAudioRecorder.getMaxAmplitude()));
if (amplitude == 0) {
Toast.makeText(MicrophoneTestActivity.this, "Nothing recorded.", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MicrophoneTestActivity.this, "Recorded.", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onStop() {
myAudioRecorder.release();
super.onStop();
}
}