2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
我找到了解決辦法。問(wèn)題是我試圖讓處理程序中的線(xiàn)程休眠。JVM 認(rèn)為應(yīng)該暫停主線(xiàn)程,而不是“t”線(xiàn)程。我將 Thread.sleep() 方法移至 run() 以及 for 循環(huán)。我只在處理程序中留下 switch() 來(lái)更改 UI?,F(xiàn)在就可以了。
final Handler h = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
Translations x = dict.get(i-1);
switch (j) {
case 1: {
Log.d(TAG, "First word translated");
englishTrans1.setText(x.getEnglishWord());
polishTrans1.setText(x.getPolishWord());
break;
}
case 2: {
Log.d(TAG, "Second word translated");
englishTrans2.setText(x.getEnglishWord());
polishTrans2.setText(x.getPolishWord());
break;
}
case 3: {
Log.d(TAG, "Third word translated");
englishTrans3.setText(x.getEnglishWord());
polishTrans3.setText(x.getPolishWord());
break;
}
}
}
};
Runnable r = new Runnable() {
@Override
public void run() {
for(i = 0;i<dict.size();i++) {
try {
Thread.sleep(2000);
}catch (InterruptedException e){
}
if (j < 3) {
j++;
} else {
j = 1;
}
h.sendEmptyMessage(0);
}
}
};
Thread t = new Thread(r);
t.start();
}
}

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
為什么要循環(huán),代碼片段正在執(zhí)行的“字幕”鏈接到視頻。如果用戶(hù)擦洗影片并快進(jìn)或快退會(huì)怎樣?大多數(shù)字幕設(shè)置都會(huì)在屏幕上顯示與影片時(shí)間碼相關(guān)聯(lián)的句子,因此您可以在播放視頻上的時(shí)間碼發(fā)生變化時(shí)觸發(fā)字幕,并傳入時(shí)間碼,這樣它將獲取視頻該部分的句子并將其顯示在屏幕上。
添加回答
舉報(bào)