برای اضافه کردن این قابلیت لازمه که از کلاس TextToSpeech استفاده کنیم
پس قبل از ھر چیز یک شی جدید از این کلاس با
نام دلخواه talafoz می سازیم و سپس تو متد onCreate متد مربوط به talafoz را new میکنیم:
قابلیت تلفظ و خواندن متون انگلیسی در برنامه نویسی اندروید تبدیل متن به گفتار
talafoz=new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int i) { } });
خب حالا بین دو آکولاد مربوط به تابع onInit یک شرط قرار میدیم که اگر گوشی کابر این قابلیت را دارد
بیا برای ما یه اعمالی
انجام بده (در ادامه توضیح میدم) و اگر این قابلیت را ندارد یک پیغام نمایش بده
با این عنوان که “قابلیت تلفظ برای دستگاه شما
وجود ندارد” (کد ما به شکل زیر خواھد شد):
talafoz=new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int i) { if (i==TextToSpeech.SUCCESS) { } }else { شما دستگاه برای تلفظ قابلیت",()getApplicationContext(makeText.Toast وجود ندارد,"Toast.LENGTH_SHORT).show(); } } });
در قدم بعدی در قسمت برقراری شرط بالا میام و یه شرط دیگه تعریف میکنیم
که اگر گوشی کاربر زبان مورد نظر ما (که در
اینجا انگلیسی ھست) را ساپورت نکرد یک پیغام با این محتوا که “این زبان پشتیبانی نمیشود” را نمایش دھد
و دکمه تلفظ را غیر
فعال کند (کد نھایی به شکل زیر خواھد بود):
talafoz=new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int i) { if (i==TextToSpeech.SUCCESS) { //baresi inke aya zabane morede nazar ra support mikone ya na int result=talafoz.setLanguage(Locale.US); if (result==TextToSpeech.LANG_MISSING_DATA || result==TextToSpeech.LANG_NOT_SUPPORTED) { پشتیبانی زبان این",()getApplicationContext(makeText.Toast نمیشود,"Toast.LENGTH_SHORT) .show(); btnSpeak.setEnabled(false); } }else { شما دستگاه برای تلفظ قابلیت",()getApplicationContext(makeText.Toast وجود ندارد,"Toast.LENGTH_SHORT).show(); } } });
خب قدم بعدی اینه کھ برای دکمه تلفظ متد setOnCheckedChangeListener را فراخوانی کنیم و داخل این متد تعریف کنیم که
اگر روی این دکمه کلیک شد متن داخل تکست ویو ما را گرفته و آن را تلفظ کند ، این عمل را با خط کد زیر انجام میدھیم:
talafoz.speak(txtConverE.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
در اینجا در پارامتر دوم داخل پرانتز مشخص کردیم که با ھربار کلیک کردن متون قبلی را حذف کنه و متن جدید را تلفظ کنه موفق باشید .