Я создал простое приложение для проверки речи и текста IBM Watson.Мой план состоит в том, чтобы развернуть приложение Android, используя его.Мое приложение работает во время игры на Unity, но не работает после сборки и запуска на моем Android-устройстве.
Благодаря изучению Logcat на Android Studio я обнаружил, что оно выполняет бесконечный цикл в цикле while, упомянутом взаглавие.Моя учетная часть моего кода также находится ниже.
Опять же, это работает на моем ПК.Не работает после сборки и развертывания на Android.Кто-нибудь знает, что мне не хватает?Я предполагаю, что это что-то конкретное связано с Android, но я не уверен.Я зашел в тупик, гуглил ответы.
private void Start()
{
Debug.Log("Start");
recordedText = GameObject.Find("RecordedText").GetComponent<Text>();
LogSystem.InstallDefaultReactors();
// create Watson service
Runnable.Run(CreateService());
// note if there are mic devices found
foreach (string device in Microphone.devices)
{
Debug.Log(device);
}
audioSource = gameObject.AddComponent<AudioSource>();
}
// creates Watson credentials and initializes STT service
private IEnumerator CreateService()
{
if (string.IsNullOrEmpty(_iamApikey))
{
throw new WatsonException("Plesae provide IAM ApiKey for the service.");
}
// Create credential and instantiate service
Credentials credentials = null;
// Authenticate using iamApikey
TokenOptions tokenOptions = new TokenOptions()
{
IamApiKey = _iamApikey
};
credentials = new Credentials(tokenOptions, _serviceUrl);
if(credentials != null) Debug.Log("Credentials is not null!");
// Wait for tokendata
while (!credentials.HasIamTokenData())
{
Debug.Log("In the while loop"); // INFINITE LOOP ON ANDROID
yield return null;
}
Debug.Log("OUT of the while loop");
_speechToText = new SpeechToText(credentials); // NEVER REACHES ON ANDROID
}