|
|
|
|
@ -65,7 +65,8 @@ public class ImmersiveReadingActivity extends AppCompatActivity {
|
|
|
|
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
|
|
|
|
|
|
|
|
|
immersiveService = ImmersiveReadingService.getInstance(this);
|
|
|
|
|
ttsService = TextToSpeechService.getInstance(this);
|
|
|
|
|
ttsService = TextToSpeechService.getInstance();
|
|
|
|
|
ttsService.initialize(this);
|
|
|
|
|
|
|
|
|
|
initViews();
|
|
|
|
|
applyCurrentTheme();
|
|
|
|
|
@ -241,9 +242,32 @@ public class ImmersiveReadingActivity extends AppCompatActivity {
|
|
|
|
|
Toast.makeText(this, "已停止朗读", Toast.LENGTH_SHORT).show();
|
|
|
|
|
} else {
|
|
|
|
|
String content = tvContent.getText().toString();
|
|
|
|
|
ttsService.speak(content);
|
|
|
|
|
isSpeaking = true;
|
|
|
|
|
btnSpeak.setText("⏹️ 停止");
|
|
|
|
|
ttsService.speak(content, new TextToSpeechService.TTSCallback() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onStart() {
|
|
|
|
|
runOnUiThread(() -> {
|
|
|
|
|
isSpeaking = true;
|
|
|
|
|
btnSpeak.setText("⏹️ 停止");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onComplete() {
|
|
|
|
|
runOnUiThread(() -> {
|
|
|
|
|
isSpeaking = false;
|
|
|
|
|
btnSpeak.setText("🔊 朗读");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onError(String error) {
|
|
|
|
|
runOnUiThread(() -> {
|
|
|
|
|
isSpeaking = false;
|
|
|
|
|
btnSpeak.setText("🔊 朗读");
|
|
|
|
|
Toast.makeText(ImmersiveReadingActivity.this, "朗读失败: " + error, Toast.LENGTH_SHORT).show();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
Toast.makeText(this, "开始朗读...", Toast.LENGTH_SHORT).show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|