Android Media Player:每隔1秒在文本视图中显示数组中的单词
我正在尝试以1秒的间隔显示数组中的单词。我有以下代码:Android Media Player:每隔1秒在文本视图中显示数组中的单词,android,textview,Android,Textview,我正在尝试以1秒的间隔显示数组中的单词。我有以下代码: final TextView tv = new TextView(this); setContentView(tv); final MediaPlayer mPlayer = MediaPlayer.create(this, R.raw.nicholas); try { mPlayer.prepare(); } catch (IllegalStateException e) {
final TextView tv = new TextView(this);
setContentView(tv);
final MediaPlayer mPlayer = MediaPlayer.create(this, R.raw.nicholas);
try {
mPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mPlayer.start();
tv.setText("Playing...");
Thread thread = new Thread()
{
@Override
public void run() {
try {
String words[] = {
"Nicholas ",// 0
"was ", // 1
"older ",// 2
"than ",// 3
"sin ",// 4
"and ",// 5
"his ",// 6
"beard ",// 7
"could ",// 8
"go ",// 9
"no ",// 10
"whiter. "// 11
};
int x = 0;
while(x <= 11) {
sleep(1000);
tv.append(words[x]);
x++;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
}
final TextView tv=新的TextView(此);
设置内容视图(电视);
final MediaPlayer=MediaPlayer.create(this,R.raw.nicholas);
试一试{
mPlayer.prepare();
}捕获(非法状态){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
mPlayer.start();
tv.setText(“播放…”);
线程线程=新线程()
{
@凌驾
公开募捐{
试一试{
字符串[]={
“尼古拉斯”//0
“was”//1
“旧的”//2
“than”//3
“罪”//4
和“//5
“他的”//6
“胡子”//7
“可以”//8
“走”//9
“否”//10
“更白。”//11
};
int x=0;
而(x您无法从非主线程更新UI(tv.append()。
请使用通知主线程进行更新。
前,
你忘了启用盖曼
mHandler.post(new Runnable(){
public void run(){
tv.append(words[x]);
}
});