Videoview启动后,setText表示无法正常工作

时间:2016-12-16 14:11:31

标签: android android-videoview

我正在计划一个界面,例如视频播放背景,并在其上显示一些文字。我正在使用videoview和普通的textiev和普通按钮。就像一个spotify应用程序的介绍。

所以我创建了2个方法 用于视频开放

 public void video_ac(String x){
    adres = null;
    adres = Uri.parse("android.resource://" + getPackageName()
            + "/"
            + "raw/" +x);

    videoView.setVideoURI(adres);
    videoView.start();
}

用于设置文字

public void yazdir (String a, String b, String c)
{
    ly.setVisibility(View.VISIBLE);
    icerik_yazisi.setText("");
    icerik_yazisi.setCharacterDelay(150);
    icerik_yazisi.animateText(a);
    BT_olumlu.setText(b);
    BT_olumsuz.setText(c);
}

这个代码在创建方法上工作得很好,但是在按钮点击监听器之后它无法正常工作。

      BT_olumlu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            sorgula2(BT_olumlu.getText().toString());
            ly.setVisibility(View.GONE);
        }
    })

和我的方法:

public void sorgula2 (String sss){
    if (sss.equals("oyuna başla")){

        video_ac("abc");
        yazdir("yoldan geçen kamyonetn rengi hangisidir ..", "mavi tır " ,"sarı kamyonet");

    }

    else if(sss.equals("sarı kamyonet")){

        video_ac("bca");
        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                yazdir(".. olay nerede gerçekleşmiş.", "otopark" ,"havalimanı");
            }

        });

    }

问题是显示视频进入无限循环而不停止,并且settext方法永远不会在第一个条件下工作,我只能在videoview完整方法中显示文本。 (第二个条件)

1 个答案:

答案 0 :(得分:0)

已解决,可能在将来,对某人有用,问题是onclick听众。我改变了它并解决了。

BT_olumlu.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    // PRESSED
                    return true; // if you want to handle the touch event
                case MotionEvent.ACTION_UP:
                    // RELEASED

                    icerik_yazisi.setVisibility(View.INVISIBLE);
                    sorgula2(BT_olumlu.getText().toString());
                    return true; // if you want to handle the touch event
            }
            return false;
        }
    });