java - VideoView,为视频添加再次播放按钮
问题描述
我在这里使用imageView
,当我点击它时,它应该在(linear10)中显示一个视频,这个视频大约是 4 秒,我需要一个代码,当我再次点击imageView
该视频时,它应该再次开始播放,每次我点击我imageView
需要它从头开始播放视频
这是我用来播放视频的代码:
imageview1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
n++;
linear1.setVisibility(View.VISIBLE);
if (n == 1) {
final VideoView vd = new VideoView(MainActivity.this); vd.setLayoutParams(new LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.MATCH_PARENT)); linear1.addView(vd);
vd.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.mercury));
vd.requestFocus();
vd.start();
我尝试添加此代码,但这会循环播放视频!:
vd.setOnCompletionListener(new android.media.MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(android.media.MediaPlayer arg0) {
vd.start();
}
});
我希望当我单击图像视图时视频开始播放,然后如果我再次单击它将从头开始重新开始。
解决方案
使用 video view 的 seekTo 函数重启视频
imageview1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
n++;
linear1.setVisibility(View.VISIBLE);
if (n == 1) {
final VideoView vd = new VideoView(MainActivity.this); vd.setLayoutParams(new LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.MATCH_PARENT)); linear1.addView(vd);
vd.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.mercury));
vd.requestFocus();
vd.start();
} else {
vd.seekTo(0);
}
推荐阅读
- metal - 有没有办法让 Metal 给我们每个实例的顶点?
- spring - 从 Spring Initializer 下载的项目抛出运行时错误:创建 bean jpaMappingContext 时出错
- android - 在 viewpager 中更改选项卡的方法调用
- css - Bootstrap 4 - 导航栏搜索表单最小宽度
- reactjs - React 自动完成元素以及在列表中添加值(如果不存在)的选项
- node.js - 未找到 Socket.io 客户端错误 404
- aspnetboilerplate - 升级到 3.6.2 后 JSON 序列化程序不工作
- php - 限制对 PHP 上的管理按钮的访问
- c# - 如何执行取决于策略的多项操作?
- spring-boot - 收到消息 MessageDeliveryException: Dispatcher 没有订阅者时