Как я могу приостановить свою программу внутри цикла for (;;)?

У меня есть цикл внутри моей программы, что есть вызов espeak внутри него:

Текст дается другим приложением и отличается в каждом цикле цикла, и я пытаюсь получить этот текст, передать его espeak, он говорит текст, и остальная часть кода будет работать (печать данного текста для пример).

Но проблема в том, что, когда говорит espeak, остальная часть кода не ждет, пока он заканчивает говорить, и я ищу способ приостановить программу до завершения espeak, тогда остальная часть кода будет выполняться, но не знаешь как?

            #include <string.h>
#include <malloc.h>
#include <espeak/speak_lib.h>

espeak_POSITION_TYPE position_type;
espeak_AUDIO_OUTPUT output;
char *path=NULL;
int Buflength = 1000, Options=0;
void* user_data;
t_espeak_callback *SynthCallback;
espeak_PARAMETER Parm;
char Voice[] = {"English"};
unsigned int Size,position=0, end_position=0, flags=espeakCHARS_AUTO, *unique_identifier;

espeak_init()
{
output = AUDIO_OUTPUT_PLAYBACK;
espeak_Initialize(output, Buflength, path, Options );
espeak_SetVoiceByName(Voice);
const char *langNativeString = "en";
espeak_VOICE voice = {0};
//  memset(&voice, 0, sizeof(espeak_VOICE));
voice.languages = langNativeString;
voice.name = "US";
voice.variant = 2;
voice.gender = 1;
espeak_SetVoiceByProperties(&voice);
Size = strlen(text)+1;
}

int main()
{
for(;;)
{
...
espeak_Synth( text, Size, position, position_type, end_position, flags,unique_identifier, user_data );
espeak_Synchronize( );
// REST OF THE CODE...PRINTING THE WORLD THAT ESPEAK SAID FOR EXAMPLE
printf("\n %s \n", text);
...

}
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]