Salam. Android-də (code-Java) bir proqram yazmaqdayam. Mətndəki cümlələri for-loop döngüsü tək-tək gəzirəm və həmin cümləni hazır bir obyektin methoduna parametr olaraq göndərirəm. Nəticədə, hər loop-iteratorda method işə düşür. Amma problem ondadır ki, bu methodlar hamısı eyni vaxtda işə düşmək istəyir. Çox güman ki, thread mechanizmi ilə işləyir. Və bir yerdən sonra `device is busy` logcat-da görünür. Bu methodların sinxronizə işə düşməyini yəni bir method işini qurtardıqdan sonra iterator.next-ə keçməyini necə həll etmək olar.
Verilmiş cavablar və yazılan şərhlər (6 cavab var)
0
kodunuzun loop hissəsini bura yazsanız daha rahat olardı kömək etmək
0
Bu kod istədiyim kimi işləmir hazırda, sadəcə indiki halı budur.
2
Ardıcıl olaraq səsləndirmək üçün Android Developer dakumentasiyasında TTS üçün ola bu məqalədəki “Making your application speak” hissəsinə baxın. Hər bir cümləni ayrı-ayrı səsləndirmək əvəzinə. Bir TTS obyektinə cümlələri növbə şəklində təqdim edə bilərsiniz. Bu nümunədə olduğu kimi:
0
Diqqətə görə çox sağ ol. Amma məndə TTS obyekti hazır bir kitabxana sinfinin obyektidir. Yəni Androidin öz TTS motorunu istifadə etmirəm. (Səbəb türk dili dəstəyinin olmaması.) Mənim tts obyektim org.ispeech.SpeechSynthesis class-ını istifadə edir. Dolayısı ilə speak methodu da tək parametr istəyir, əlavə parametrlər qəbul etmir. onplaysuccessful methodundan başa düşmək olar cümləni oxuyub qurtardığını (preparettsengine funksiyası içindəki). Yeganə yol ordan istifadə etmək kimi görünür.
0
Koda üzdən baxdım. Aşağıdakı kodda niyə false yox true yazılıb?
0
Flag dəyişkən olaraq istifadə edirdim onu, canPlay olacaqdı adı, amma işimə yaramadı, oxuyub qurtardığını, bir sonrakı cümləni oxuya bilərmi yoxlamaq üçün idi.
Problemi isə həll etdim 2 gün fikirləşdikdən sonra, bəlkə kiməsə lazım olar nə vaxtsa:
Sual verin
Cavab verin