마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

videoView 미디어컨트롤러 현재재생시간 계속 보여주기

0 추천

VideoView에 동영상을 띄우고 

밑에 textView에 ui쓰레드를 사용해서 계속 videoview.getCurrentPosition() 사용해서 setText로 현재재생시간을 표시해주려고합니다 

(미디어컨트롤러에 자체적으로 시간이표시되지만 textView에 바꾸고싶어서 질문드립니다)

쓰레드사용해서 setText해도 변화가없네요.. 왜그런지 알수있을까요??

핵심코드는

videoView = (VideoView) findViewById(R.id.view);
MediaController controller = new MediaController(MainActivity.this);
videoView.setMediaController(controller);
videoView.requestFocus();
tvResult = (TextView) findViewById(R.id.tv_result);
new Thread() {
    SimpleDateFormat time= new SimpleDateFormat("H:mm:ss");
    @Override
    public void run() {
        while(videoView.isPlaying()) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    tvResult.setText("zzzz"+time.format(videoView.getCurrentPosition()));
                }
            });
            try {
                thread1.sleep(200);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}.start();
익명사용자 님이 2016년 7월 28일 질문

1개의 답변

0 추천
UiThread가 block 된 경우 반영 안 될 수 있습니다.

runOnUiThread(new Runnable()  .. 대신

tvResult.post(new Runnable() {
    public void run() {
        tvResult.setText("zzzz"+time.format(videoView.getCurrentPosition()));
    }
}

로 바꿔보세요.
익명사용자 님이 2016년 7월 28일 답변
...