Android-VideoView启动页视频,8.0崩溃解决

0. 准备视频.mp4放在res/raw内
1. 布局文件:activity_launch_video.xml

宽度自适应大小居中,高度占满全屏,设置背景色。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#01030F"
    android:gravity="center_horizontal">

    <VideoView
        android:id="@+id/video_view"
        android:layout_width="wrap_content"
        android:layout_weight="1"
        android:layout_height="0dp"
        android:clickable="false"
        android:focusable="false"
        android:background="#01030F"
        android:focusableInTouchMode="false"/>

</LinearLayout>
2. java文件:LaunchVideoActivity.java
public class LaunchVideoActivity extends YunBaseActivity {
    @BindView(R.id.video_view)
    VideoView videoView;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        //隐藏状态栏
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
        setContentView(R.layout.activity_launch_video);
        ButterKnife.bind(this);
        initView();
    }

    private void initView() {
        Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.launch_galaxy);
        videoView.setVideoURI(uri);

        //视频准备好后渲染的第一帧视频时,背景色透明
        videoView.setOnPreparedListener(mp -> mp.setOnInfoListener((mp1, what, extra) -> {
            if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START){
                videoView.setBackgroundColor(Color.TRANSPARENT);
            }
            return true;
        }));

        //不循环播放,结束跳转登录页面
        videoView.setOnCompletionListener(mp -> {
            if (isFinishing()){
                return;
            }
            LoginActivity.startActivity(LaunchVideoActivity.this);
            finish();
        });

        videoView.start();
    }

}
!出现bug:华为 Android8.0.0无法启动app,应用多次异常退出

原因: 在清单文件固定了竖屏android:screenOrientation=“portrait”,而8.0会报出错误日志:只有在不透明的全屏activity可以自主设置界面方向。
解决: 改为在代码中固定竖屏 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

现存问题:部分网速差、加载速度慢的手机会黑屏,不能正常播放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值