Приостановка и возобновление текста с помощью «Преобразование текста в речь» на Android с Android Studio

#android #kotlin

#Android #kotlin

Вопрос:

Любой код, который выполняет функцию приостановки и возобновления текста с помощью «TextToSpeech»? Это для мобильного проекта, который использует Android Studio с языком Kotlin. Я видел примеры, но они мне непонятны.

в моем проекте ReadingActivity у меня есть тестовый массив:

 ClassMateApplication.getApp()?.myList = arrayListOf(
                                "Oración 1",
                                "Oración 2",
                                "Oración 3",
                                "Oración 4",
                                "Oración 5",
                                "Oración 6"
                            )
  

Итак, в этой функции «воспроизведение» я пытаюсь сделать паузу и получить индекс, это для того, чтобы снова начать воспроизведение и начать с того места, где я остановился:

 fun play(inicio:Int){
        Log.v("FVFFGWEDWDWDQWARERDS555", ClassMateApplication.getApp()?.myList!!.size.toString())
        if(inicio == 0){
            for((index, oracion) in ClassMateApplication.getApp()?.myList!!.withIndex()){
                ClassMateApplication.getApp()?.textToSpeech?.speak(oracion, TextToSpeech.QUEUE_ADD, null)
                ClassMateApplication.getApp()?.sentenceCounter = index   1
            }

            //imageViewPlayerPlay.setImageResource(R.drawable.play_one)
        }else{
            var myList2: MutableList<String> = ArrayList()

            for((index) in ClassMateApplication.getApp()?.myList!!.withIndex()){
                if(index >= ClassMateApplication.getApp()?.sentenceCounter!!.minus(1)){
                    myList2.add(ClassMateApplication.getApp()?.myList!![index])
                }
            }

            for((index, oracion) in myList2.withIndex()){
                ClassMateApplication.getApp()?.textToSpeech?.speak(oracion, TextToSpeech.QUEUE_ADD, null)
                ClassMateApplication.getApp()?.sentenceCounter = index   1
            }

            //imageViewPlayerPlay.setImageResource(R.drawable.play_one)
        }
    }
  

затем эта функция вызывается в функции «speakText»: эта функция приостанавливает и воспроизводит текст, но когда я играю, она не возвращается с того места, где я сделал паузу, и начинается с индекса 0 массива.

 fun speakText(){
    //if (textToSpeech.isSpeaking()){
    if (ClassMateApplication.getApp()?.textToSpeech!!.isSpeaking()){
        imageViewPlayerPlay.setImageResource(R.drawable.play_one)
        pause()
    }else{
        imageViewPlayerPlay.setImageResource(R.drawable.pause)
        if(ClassMateApplication.getApp()!!.sentenceCounter > 0){ //wait int
            play(ClassMateApplication.getApp()!!.sentenceCounter)
        } else{
            play(0)
        }
    }
}
  

Комментарии:

1. Можете ли вы отредактировать свой пост, включив в него соответствующие разделы кода и то, что вы уже пробовали?

2. да, я уже внес изменения