0
私は音声読み上げライブラリを使用する必要があります。私はhttps://responsivevoice.org/を使うことに決めました。しかし、私のプロジェクトはGWTを使用しているので、統合はかなり簡単ですが、それは明らかに簡単ではありません。ここで音声が再生されない
は、概念クラスの最小証拠である私のJavaコードです:だから
import com.google.gwt.core.client.Callback;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.ScriptInjector;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.*;
public class InverseVoiceTrainer extends SimplePanel implements ClickHandler {
Button playBtn;
public InverseVoiceTrainer() {
ScriptInjector.fromUrl("https://code.responsivevoice.org/responsivevoice.js").setCallback(
new Callback<Void, Exception>() {
@Override
public void onSuccess(Void result) {
GWT.log("ResponsiveVoiceJS loaded.");
}
@Override
public void onFailure(Exception reason) {
GWT.log("ResponsiveVoiceJS loading FAILED!");
}
}).inject();
playBtn = new Button("Play");
playBtn.addClickHandler(this);
this.add(playBtn);
}
@Override
public void onClick(ClickEvent event) {
GWT.log("Onclick pressed");
playWord("This is a test message...");
}
public static native void playWord(String s) /*-{
console.log("playWord - 1");
responsiveVoice.speak(s);
console.log("playWord - 2");
}-*/;
}
、私は以下を参照してくださいすることができますコンソールログに探して:
(と言われますResponsiveVoice r1.5.3
SuperDevModeLogger.java:71 ResponsiveVoiceJS loaded.
SuperDevModeLogger.java:71 Onclick pressed
InverseVoiceTrainer.java:40 playWord - 1
InverseVoiceTrainer.java:42 playWord - 2
a)レスポンスボイスが正しくロードされているように見え、(b)サウンドが再生されているはずです。しかし、何も聞こえず、音量も聞こえます。では、ここで何がうまくいかないのですか?
これは、 'ScriptInjector'呼び出しの問題を指しています。' setWindow(ScriptInjector.TOP_WINDOW) 'が呼び出されていなければなりません。そして、JSNIメソッドは' $ wnd.'の接頭辞になります。 。 –