إحدى الطرق التي يمكنك من خلالها التواصل مع المستخدمين هي استخدام تكنولوجيا "تحويل النص إلى كلام" (TTS). تتوفّر ميزة "تحويل النص إلى كلام" في نظام التشغيل Android (بدون الحاجة إلى مكتبات إضافية)، وتعمل حتى عندما تكون غير متصل بالإنترنت. هذه الخصائص تجعل ميزة "تحويل النص إلى كلام" مثالية للتعامل مع حالات الخطأ في الوضع بدون شاشة. يمكنك الرجوع إلى ميزات تحويل النص إلى كلام باستخدام الفئة TextToSpeech.
إنشاء مثيل TextToSpeech
ننصحك بإنشاء مثيل لفئة TextToSpeech في طريقة onCreate الخاصة بالنشاط
المتوقّع لكي يكون متاحًا طوال مدة Activity:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tts = TextToSpeech(this) { status ->
if(status == TextToSpeech.SUCCESS) {
// Initialization successful
}else {
// Initialization failed
}
}
...
}
إشعار المستخدم عند بدء تحويل النص إلى كلام
بالنسبة إلى التجارب التي لا تتضمّن شاشة (صوتية فقط)، يجب إعلام المستخدم بأنّ تطبيقك تم تشغيله بنجاح من خلال إرسال إشعار إليه في طريقة onStart:
override fun onStart() {
super.onStart()
tts?.speak("Welcome to Android XR Glasses!",
TextToSpeech.QUEUE_FLUSH,
null,
"welcome_utterance")
...
}
النقاط الرئيسية حول الرمز
- يشير
TextToSpeech.QUEUE_FLUSHإلى أنّه يجب نطق النص على الفور وإيقاف أي عبارة أخرى من تحويل النص إلى كلام. - يُستخدَم الرمز
utteranceId، وفي هذه الحالة"welcome_utterance"، لتحديد وقت انتهاء نطق هذا النص. لمزيد من المعلومات، يُرجى الاطّلاع علىUtteranceProgressListener.
مقاطعة ميزة "تحويل النص إلى كلام"
إذا كان تطبيقك يحتاج إلى مقاطعة خدمة تحويل النص إلى كلام، استخدِم طريقة stop:
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
تنظيف موارد تحويل النص إلى كلام
يجب تنظيف الموارد عند إيقاف نشاطك من خلال استدعاء طريقة shutdown ضمن طريقة onDestroy الخاصة بالنشاط:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}