java - 如何使视频仅从按钮开始?

标签 java android onclicklistener android-videoview

我是编码新手,现在我从 youtube 制作了一个背景视频,该视频在进入 Activity 后立即开始并循环播放(它永远不会停止)。 btStart 上设置了一个计时器,但这与我的要求无关。如何仅在按下 btStart 按钮后才开始播放视频?
我将 videoView.start() 放在 clickListener 中,但没有任何改变。
代码:

public class BreatheActivity extends AppCompatActivity {

private VideoView videoView;
MediaPlayer mediaPlayer;
int currentVideoPosition;

Button btStart;
ImageButton btOut;
ImageView xOut;
Chronometer chrono;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_breathe);

    xOut = findViewById(R.id.btOutX);
    btOut = findViewById(R.id.btOut);
    btStart = findViewById(R.id.btBreathe);
    chrono = findViewById(R.id.breathe_chrono);

    videoView = findViewById(R.id.video_breath);
    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.breathe);

    videoView.setVideoURI(uri);


    btStart.setOnClickListener(view -> {
        videoView.start();

        btStart.setVisibility(View.GONE);

        chrono.setBase(SystemClock.elapsedRealtime());

        chrono.start();

    });

    btOut.setOnClickListener(v -> {
        BreatheActivity.super.onBackPressed();

    });

    videoView.setOnPreparedListener(mp -> {
        mediaPlayer = mp;

        mediaPlayer.setLooping(true);

        if (currentVideoPosition != 0) {
            mediaPlayer.seekTo(currentVideoPosition);
            mediaPlayer.start();
        }

    });

}

@Override
protected void onPause() {
    super.onPause();
    currentVideoPosition = mediaPlayer.getCurrentPosition();
    videoView.pause();
}

@Override
protected void onResume() {
    super.onResume();
    videoView.start();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    mediaPlayer.release();
    mediaPlayer = null;
}

}

最佳答案

我想你忘了在 btStart.setOnClickListener(view -> {}); 中移动 videoView.start();

btStart.setOnClickListener(view -> {
    videoView.start();
 
    btStart.setVisibility(View.GONE);
     
    chrono.setBase(SystemClock.elapsedRealtime());
    
    chrono.start();
    
});
Here 是和你做同样事情的人。

关于java - 如何使视频仅从按钮开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66724294/

相关文章:

java - 使用按钮的 onClickListener 更改 textview 上的文本

java - 我如何使用 JGit 进行 pull 或获取?

java - 在具有边缘空间的字符串列表中查找字符串

android - 在MacOS上的iOS Simulator上运行Flutter应用失败

android - 改进 Windows 7 x64 上的 Android 模拟器性能

java - 如何为 ListView 中的项目设置 onClickListener(listview 的项目是通过从 firebase 检索数据动态生成的)

Java 小程序 ClassNotFoundException

java - 在 Windows 7 平板电脑中执行时,我的 GUI 看起来很奇怪

Android onItemClickListener 不起作用(代码中没有焦点)

Android ListView onitemclick监听器