仿虾米音乐引导页面

昨天已经写过《仿易信引导页面》,虾米音乐引导页面和易信引导页面其实是一样的,它们唯一的大区别就是易信用了一段视频,虾米音乐用了四段视频,所以我在这里简单记录一下。

首先看效果图:

这里写图片描述

与易信引导页面的区别

虾米音乐引导页面同样用的视频+ViewPager,不过它用的是四段视频,而且当手动去滑ViewPager的时候,视频会跟着切换,也就是说不同界面显示的不同视频,而且视频只轮播一遍。易信则一段视频一直无限循环播放。
而raw里面放的视频没次只能读取一个。于是我就用了下面的方法。跟随ViewPager的切换来切换视频
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                setIndicator(position);
                currentPosition = position;
                getCurrentVideo(currentPosition);//根据ViewPager位置来获取播放相应的视频
                mVideoView.start();//别忘了播放视频
                Log.i("kevin", position + "");
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

获取相应视频代码

关键时刻,switch总是很给力。不过这只是引导页面,视频数量少。多了就要另想他法了。不过app里面也不可能放那么多大文件,多的就要网络获取了。
private void getCurrentVideo(int position) {
        switch (position) {
            case 0:
                mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash_1));
                break;
            case 1:
                mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash_2));
                break;
            case 2:
                mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash_3));
                break;
            case 3:
                mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash_4));
                break;
        }
    }

问题一

这里虽然这样设置了,你会发现运行后第一个视频是黑屏无法播放。为什么呢?因为ViewPager的轮播获取的position是从1开始的,所以不会播放第一个视频。于是就只能在初始化的时候设置第一个视频的播放情况。这里我也给出了我的方法。
mViewPager.setCurrentItem(currentPosition);
        if (currentPosition == 0) {          mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash_1));
            mVideoView.start();
        }

问题二

我添加的ViewPager的自动轮播,会不停的将position添加1,所以要加控制。
if (mViewPager.getCurrentItem() <= 2) {
                                                           mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true);
                    }
这里同样附上Demo

下载链接1:

下载链接2(github)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值