yy1717
2020-03-09 bab1e388712597cfd16e9b47c5dc8d9840ea91e8
lib/src/main/cpp/native-lib.cpp
@@ -225,9 +225,36 @@
    }
}
void DisplayText(const char *string)
void PlayTTS(const char *string)
{
    DEBUG("DisplayText: %s", string);
    DEBUG("PlayTTS: %s", string);
    JNIEnv *env;
    bool ready_in_java_env = false;
    if (sg_jvm->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) {
        // Attach主线程
        if (sg_jvm->AttachCurrentThread(&env, NULL) != JNI_OK) {
            LOGE("%s: AttachCurrentThread() failed", __FUNCTION__);
            return;
        }
    } else {
        ready_in_java_env = true;
    }
    jclass cls = env->GetObjectClass(sg_obj);
    jmethodID fun = env->GetMethodID(cls, "TextSpeak", "(Ljava/lang/String;)V");
    env->CallVoidMethod(sg_obj, fun, env->NewStringUTF(string));
    env->DeleteLocalRef(cls);
    if (!ready_in_java_env) {
        //Detach主线程
        if (sg_jvm->DetachCurrentThread() != JNI_OK) {
            LOGE("%s: DetachCurrentThread() failed", __FUNCTION__);
        }
    }
}
extern "C"