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

Posted

技术标签:

【中文标题】如何使视频仅从按钮开始?【英文标题】:How can I make the video only start from the button? 【发布时间】:2021-03-20 17:06:13 【问题描述】:

我是编码新手,现在我从 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;



【问题讨论】:

欢迎来到 Stack Overflow!问题中没有答案,请。我已回滚/编辑您的问题并删除了答案。仅在答案部分添加答案。 【参考方案1】:

我想你忘了把 videoView.start() 移到 btStart.setOnClickListener(view -> );

btStart.setOnClickListener(view -> 
    videoView.start();
 
    btStart.setVisibility(View.GONE);
     
    chrono.setBase(SystemClock.elapsedRealtime());
    
    chrono.start();
    
);

Here 是和你做同样事情的人。

【讨论】:

这是我做的第一件事,但由于某种原因没有任何变化,我认为可能是别的原因。

以上是关于如何使视频仅从按钮开始?的主要内容,如果未能解决你的问题,请参考以下文章

视频暂停时如何使 vjs-big-play-button 出现?

仅从流媒体视频中下载音频?

仅从 html5 视频/音频加载元数据

如何通过单击 Android 中的按钮使 VideoView 全屏显示?

使用 Flatlist 单击播放按钮以全屏(横向)播放视频

如何知道 youtube 视频何时开始播放以及何时在 ios 的 web 视图中按下 mpmovieplayer 的完成按钮