过年了带你一起看烟花之加载烟花视频

137 阅读1分钟

PK创意闹新春,我正在参加「春节创意投稿大赛」,详情请看:春节创意投稿大赛

背景

以前毎到过年的时候,最期待的几件事:压岁钱,放烟花,年夜饭

随着禁放烟花的实施,看自己燃放烟花和看烟花也愈发困难了,今天就为各位xdm带来了一场有声的烟花秀,可以在手机上控制实时停止

  • 先上烟花

Kapture 2022-02-04 at 23.21.10.gif

实现

通过VideoView来实现视频的简单播放

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <VideoView
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:id="@+id/video"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</androidx.constraintlayout.widget.ConstraintLayout>
  • 获取视频控件
VideoView videoView = findViewById(R.id.video);
  • 通过Uri拿到raw资源下的视频文件
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video);
  • 将VideoView对象和MediaController对象进行绑定
//创建MediaController对象
MediaController mediaController = new MediaController(this);
//VideoView与MediaController建立关联
videoView.setMediaController(mediaController);
//让VideoView获取焦点
videoView.requestFocus();
  • 注册监听事件
//播放完成的回调
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
        Toast.makeText(getBaseContext(),"播放完毕",Toast.LENGTH_LONG).show();
    }
});
//播放错误的回调
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Toast.makeText(getBaseContext(),"播放出错拉...",Toast.LENGTH_LONG).show();
        return false;
    }
});
//视频加载完毕可以播放的回调
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        Toast.makeText(getBaseContext(),"视频准备就绪",Toast.LENGTH_LONG).show();
    }
});

常用方法

getCurrentPosition获取当前播放的位置
getDuration 获取当前视频的总时长
pause 暂停视频播放
seekTo指定播放位置
setVideoPath指定视频文件路径
setVideoURI设置视频文件的URI
start开始播放视频

最后祝各位xdm 虎年大吉,身体健康,心想事成,万事如意!