java - 如何使视频仅从按钮开始?
问题描述
我是编码新手,现在我从 youtube 制作了一个背景视频,该视频在进入活动后立即开始并循环播放(它永远不会停止)。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;
}
}
解决方案
我认为您忘记将 videoView.start() 移动到 btStart.setOnClickListener(view -> {});
btStart.setOnClickListener(view -> {
videoView.start();
btStart.setVisibility(View.GONE);
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
});
这里有人和你做同样的事情。
推荐阅读
- python - 通过 Windows 调度程序运行 python 脚本不起作用
- python - python 上的 Messenger 机器人
- javascript - 如何使用 FLIP 制作高度动画
- python - 在 Python 列表中存储 API 数据时出现问题
- c++ - 打包任务参数是否存在数据竞争?
- docker - adminCenter 部署 WebSphere Liberty
- azure - Kubernetes 服务负载均衡器“No route to host”错误
- linux - AWK 命令在 linux 中不起作用,但在 mac 中起作用
- javascript - 调用回调函数的函数应该绑定吗?
- powerbi - Power BI 测量计算百分比