Android 在PlaybackParams应用程序中设置音高
我正在使用AudioManager录制音频 所以,每当我尝试使用setPitch函数设置音调时,我的应用程序就会崩溃 注意:samplerate=8500 这是代码Android 在PlaybackParams应用程序中设置音高,android,android-studio,Android,Android Studio,我正在使用AudioManager录制音频 所以,每当我尝试使用setPitch函数设置音调时,我的应用程序就会崩溃 注意:samplerate=8500 这是代码 buttonPlayLastRecordAudio.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) throws IllegalAr
buttonPlayLastRecordAudio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) throws IllegalArgumentException,
SecurityException, IllegalStateException {
buttonStop.setEnabled(false);
buttonStart.setEnabled(false);
buttonStopPlayingRecording.setEnabled(true);
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(AudioSavePathInDevice);
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
params.setPitch(samplerate);
mediaPlayer.setPlaybackParams(params);
mediaPlayer.start();
Toast.makeText(MainActivity.this, "Recording Playing",
Toast.LENGTH_LONG).show();
}
});
下面是错误信息
2020-02-20 18:43:33.574 9544-9577/com.mycompany.testaudio E/MemoryLeakMonitorManager: MemoryLeakMonitor.jar is not exist!
2020-02-20 18:43:33.587 9544-9592/com.mycompany.testaudio E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@f96188d
2020-02-20 18:43:37.561 9544-9544/com.mycompany.testaudio E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mycompany.testaudio, PID: 9544
java.lang.IllegalArgumentException
at android.media.MediaPlayer.setPlaybackParams(Native Method)
at com.mycompany.testaudio.MainActivity$3.onClick(MainActivity.java:162)
at android.view.View.performClick(View.java:6659)
at android.view.View.performClickInternal(View.java:6631)
at android.view.View.access$3100(View.java:790)
at android.view.View$PerformClick.run(View.java:26187)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
8500
的“变桨”系数太高了。此参数的安全范围可能介于0.5
-3.0
之间(猜测)<代码>1.0对应“无变桨”
不幸的是,我找不到关于实际限制的文件;您可能需要简单地通过捕获异常来确定您提供的值是否超出范围。不客气。别忘了接受这个答案:)