Не могу начать запись звука.Я получаю следующую ошибку:
E/AudioRecord: start() status -38
E/AndroidRuntime: FATAL EXCEPTION: Thread-7713
Process: com.sienaapp.sienaapp, PID: 5005
java.lang.IllegalArgumentException: capacity < 0: -6
at java.nio.ByteBuffer.allocate(ByteBuffer.java:54)
at com.ibm.watson.developer_cloud.android.library.audio.MicrophoneCaptureThread.run(MicrophoneCaptureThread.java:91)
Это код, с которого я звоню в MicrophoneHelper
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fab:
try {
mMicrophoneStream = mMicrophoneHelper.getInputStream(true);
} catch (Exception e) {
e.printStackTrace();
}
new Thread(new Runnable() {
@Override
public void run() {
mSpeechToText.recognizeUsingWebSocket(mMicrophoneStream,
getRecognizeOptions(),
baseRecognizeListener);
}
}).start();
break;
}
}
Настройки SpeechToText Recognize
private RecognizeOptions getRecognizeOptions() {
return new RecognizeOptions.Builder()
.model("pt-BR_BroadbandModel")
.contentType(ContentType.OPUS.toString())
.interimResults(true)
.timestamps(true)
.inactivityTimeout(-1)
.smartFormatting(true)
.model(SpeechModel.PT_BR_BROADBANDMODEL.getName())
.build();
}
Часть build.gradle
файла
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.test.testapp"
minSdkVersion 22
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Помня, что minSdkVersion
соответствует запросу (больше, чем уровень API 19), а права доступа RECORD_AUDIO
и WRITE_EXTERNAL_STORAGE
были правильно запрошены и реализованы для уровня API> = 23.
Может ли кто-нибудь помочь мне решить эту проблему?Ответы, которые я исследовал, мне не сильно помогли.благодарный