我正在设置一项功能,该功能将根据对讲无障碍服务当前选择的项目来发送声音。我的问题是我无法找到一种方法来实际询问Android TalkBack当前选择的内容。
答案 0 :(得分:0)
您可以使用系统提供的android文本语音转换引擎(TTS)。使用此功能,您可以在新的消息事件中或每当用户单击文本时播放提供的文本的音频。
TextToSpeech tts=new TextToSpeech(this,this);
String text = "message_text_string";
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
答案 1 :(得分:0)
我不知道android的具体答案,也许可以,但是通常您不知道屏幕阅读器用户当前在哪里。
您必须在系统焦点和当前读取位置之间进行区别。他们不一样。
例如,通过编程方式移动系统焦点或按下键盘上的Tab键时,原则上会跟随读取光标。 当用户使用箭头键或在移动设备上扫动来阅读页面时,情况恰恰相反。在这种情况下,读取位置会移动,但系统焦点会保持在原位。
您可以随时知道系统焦点在哪里(JavaScript中的示例:document.activeElement
),但是通常没有等同于知道读取光标在哪里的信息。
从哲学上讲,它是非常好的。如果我们采取并行处理,则您将无法知道用户在屏幕上的确切位置(除非使用非常特殊的硬件)。
对于您的特定情况,您可能要做的最好是基于系统焦点来决定是否播放声音。