Плагин Kotlin Flutter TextToSpeech onInit не инициализирован - PullRequest
0 голосов
/ 03 ноября 2018

Работа над разработкой плагина TTS Flutter с использованием Kotlin.

Одна проблема, с которой я столкнулся - это onInit не запускается.

package com.nannex.flutterplugin
import android.os.Bundle
import android.speech.tts.TextToSpeech
import android.util.Log
import java.util.*
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.PluginRegistry.Registrar

class FlutterPlugin() : MethodCallHandler, TextToSpeech.OnInitListener {

  var test: String = "not worked";
  var tts: TextToSpeech? = null;

    override fun onInit(status: Int) {
      if (status != TextToSpeech.ERROR) {
        tts!!.setLanguage(Locale.US)
        test = "worked";
      }
    }


  companion object {

    @JvmStatic
    fun registerWith(registrar: Registrar) {
      val channel = MethodChannel(registrar.messenger(), "flutter_plugin")
      channel.setMethodCallHandler(FlutterPlugin())
    }
  }

  override fun onMethodCall(call: MethodCall, result: Result): Unit {
    if (call.method.equals("getPlatformVersion")) {
      result.success(test)
    } else {
      result.notImplemented()
    }
  }

  fun speak(text: String) {

    tts!!.speak(text, TextToSpeech.QUEUE_FLUSH, null, "")
  }

}

Не уверен, что я здесь делаю неправильно. Может кто-то указать в правильном направлении, как получить OnIit для стрельбы? Насколько я понимаю, это должен быть обратный вызов OnInitListener, но, похоже, он не работает.

Я также использовал следующее в качестве руководства.

Пример Kotlin TTS

...