Ovi*_*tcu 3 android text-to-speech android-4.2-jelly-bean
我TextToSpeech有时会使用一些长文本,我注意到,因为Android 4.1.2如果文本超过4000个字符,它就不会播放.
我没有收到任何错误,但文本将不会播放.到目前为止,我能够重现这一点Android 4.1.2(三星Galaxy Nexus,Nexus7).
这是一个bug 4.1.2还是正常的(虽然我没有找到任何关于这种行为的文档)?
另外我发现了一个帖子:如果收到的TTS太长则onUtteranceCompleted()会丢失,这表示文本超过4000个字符会出现不同的问题.
编辑:我试图将我的字符串拆分为4k长度的块,并将其发送到TTS使用QUEUE_ADD,我遇到了另一个错误:QUEUE_ADD无法工作,而是刷新现有队列,只有最后一个块被播放.
EDIT2:这是我的号召TTS
mTTS.speak(longText, TextToSpeech.QUEUE_FLUSH, null);
Run Code Online (Sandbox Code Playgroud)
TtsService.java中的MAX_SPEECH_ITEM_CHAR_LENGTH = 4000,在4.1上我看到代码中有警告:
@Override
public boolean isValid() {
if (mText == null) {
Log.wtf(TAG, "Got null text");
return false;
}
if (mText.length() >= MAX_SPEECH_ITEM_CHAR_LENGTH) {
Log.w(TAG, "Text too long: " + mText.length() + " chars");
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
看起来像2.3拆分文本,所以teorically你的代码应该工作在android <4.1而不是更新(我不知道什么时候拆分),而你有相反的:)这有点奇怪
| 归档时间: |
|
| 查看次数: |
2046 次 |
| 最近记录: |