【发布时间】:2015-05-15 15:48:50
【问题描述】:
我有一个音轨正在播放,音轨中每个单词都有对应的开始时间的单词数组:
HashMap<String, Float> words = new HashMap<>();
words.put("This", 11.258);
words.put("is", 11.733);
words.put("some", 11.733);
我还在 TextView 中显示了此文本。每当音轨中的单词发音时,我都希望突出显示该单词。目前我能想到的唯一解决方案是每隔几毫秒运行一次 CountDownTimer 并突出显示当前播放的单词,如下所示:
new CountDownTimer(30000, 4) {
public void onTick(long millisUntilFinished) {
// remove previos word highlighting
...
// highlight current word
Spannable spannableText = new SpannableString(tv.getText());
spannableText.setSpan(new BackgroundColorSpan(Color.LTGRAY), startOffset, endOffset, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(spannableText);
}
public void onFinish() {
}
}.start();
这种方法是否可行,或者是否有更好的方法来实现我描述的功能?也许使用 MediaPlayer 的东西?
【问题讨论】:
-
谢谢,处理程序如何成为更好的方法?
-
我在下面发布了我的答案:
标签: android