Android TextToSpeech 不起作用。不绑定TTS引擎

问题描述 投票:0回答:1

我的 TextToSpeech 返回错误 W/TextToSpeech:说话失败:未绑定到 TTS 引擎。

将 targetSdkVersion 更改为 28 并不能帮助解决此问题(现在我当前的版本是 32。我也尝试过 30)。

onInit 方法中我看到 status = -1(错误)

请帮助解决这个问题,或者可能会得到建议,如何使用其他一些实现来执行语音功能。

MainActivity.java

public class MainActivity extends Activity {
  
  private TextView myTextView;
  private MainActivityListeners listeners = new MainActivityListeners(this);

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.myTextView = findViewById(R.id.tv_myView);
   this.myTextView.setOnClickListener(this.listeners.getTranslateClickListener(this.myTextView));
}

MainActivityListeners.java

public class MainActivityListeners implements TextToSpeech.OnInitListener {
    
    private MainActivity activity;
    private TextToSpeech myTextToSpeech;
    private boolean mIsInit;

    public MainActivityListeners(MainActivity activity) {
        this.activity = activity;
}

    @Override
    public void onInit(int status) {
        if (status == TextToSpeech.SUCCESS) {
            Locale locale = new Locale("eng");
            int result = mTextToSpeech.setLanguage(locale);
            if (result == TextToSpeech.LANG_MISSING_DATA) {
                mIsInit = false;
            } else {
                mIsInit = true;
            }
        } else {
            mIsInit = false;
        }
    }

View.OnClickListener getTranslateClickListener(TextView myTextView) {
        return x -> {
                this.myTextToSpeech = new TextToSpeech(this.activity, this);
                this.myTextToSpeech.speak("Hello", TextToSpeech.QUEUE_FLUSH, null, "someId");
            }
        };
    }

}
java android text-to-speech
1个回答
0
投票

您的设备上应该安装有文本转语音引擎。它是一个单独的应用程序(隐藏与否,取决于制造商)。它通常预装在大多数手机上,但并非所有 Android 模拟器都有它(尤其是自定义皮肤)。您可以检查系统设置中是否可以找到并选中“文本转语音设置”,如果它丢失(比如有零个引擎可用),您可以从 PlayStore 下载它(我通常采用这个一个)。

© www.soinside.com 2019 - 2024. All rights reserved.