| | |
| | | return ciphertext_length; |
| | | } |
| | | |
| | | void TextSpeak(const char *text) |
| | | { |
| | | 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"); |
| | | |
| | | std::string cstext = text; |
| | | env->CallVoidMethod(sg_obj, fun, env->NewStringUTF(cstext.c_str())); |
| | | env->DeleteLocalRef(cls); |
| | | |
| | | if (!ready_in_java_env) { |
| | | //Detach主线程 |
| | | if (sg_jvm->DetachCurrentThread() != JNI_OK) { |
| | | LOGE("%s: DetachCurrentThread() failed", __FUNCTION__); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void TextOsd(int type, const char *text) |
| | | { |
| | | /* JNIEnv *env; |
| | |
| | | } |
| | | } |
| | | |
| | | void PlayTTS(const char *string) |
| | | void PlayTTS(const char *string, int id) |
| | | { |
| | | DEBUG("PlayTTS: %s", string); |
| | | |
| | |
| | | } |
| | | |
| | | jclass cls = env->GetObjectClass(sg_obj); |
| | | jmethodID fun = env->GetMethodID(cls, "TextSpeak", "(Ljava/lang/String;)V"); |
| | | jmethodID fun = env->GetMethodID(cls, "TextSpeak", "(Ljava/lang/String;I)V"); |
| | | |
| | | env->CallVoidMethod(sg_obj, fun, env->NewStringUTF(string)); |
| | | env->CallVoidMethod(sg_obj, fun, env->NewStringUTF(string), id); |
| | | |
| | | env->DeleteLocalRef(cls); |
| | | |
| | |
| | | env->GetJavaVM(&sg_jvm); |
| | | // 不能直接赋值(g_obj = ojb) |
| | | sg_obj = env->NewGlobalRef(thiz); |
| | | |
| | | srand(time(NULL)); |
| | | |
| | | AppTimer_Init(); |
| | | ConfigMCU(); |
| | |
| | | |
| | | env->ReleaseByteArrayElements(data, c_dat, NULL); |
| | | } |
| | | |
| | | extern "C" |
| | | JNIEXPORT void JNICALL |
| | | Java_com_anyun_exam_lib_RemoteService_TextSpeakEnd(JNIEnv *env, jobject thiz, jint id) { |
| | | // TODO: implement TextSpeakEnd() |
| | | PlatformStatusChanged(PLAY_TTS_DONE_EVT, (uint8_t *)&id, sizeof(id)); |
| | | } |