同じアクティビティにVideoViewとTextViewがあります。これがレイアウトのxmlです。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rellayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<VideoView
android:id="@+id/videoview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:padding="5dp" />
<TextView
android:id="@+id/numberTicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/purple"
android:textStyle="bold"
android:gravity="top|right"
android:textSize="35dp"
android:maxEms="3"/>
</RelativeLayout>
ビデオの再生が開始されたらすぐに、numberTickerテキストビューに番号を表示したいと思います。数字は1秒間に4回変化する可能性があります。とにかく、私が抱えている主な問題は、ビデオの再生が開始されたことを確認し、TextViewを更新し続けることです。
私の試み:
vid = (VideoView) findViewById(R.id.videoview);
ratings = (TextView) findViewById(R.id.ratingTicker);
vid.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
vid.start();
vid.postDelayed(onEveryQuarterSecond,250);
}
});
...
...
private Runnable onEveryQuarterSecond = new Runnable() {
Random r = new Random();
int uVal, aVal;
@Override
public void run() {
ratings.setText(Integer.toString(r.nextInt()));
}
};
Runnableコードは一度だけ実行され、更新されることはありません。私は何かが足りないのですか?
助けてくれてありがとう!