1***@qq.com
1***@qq.com
  • 发布:2023-03-21 13:55
  • 更新:2023-03-22 11:02
  • 阅读:660

【报Bug】uniapp打包app, swiper嵌套video,自动播放不到10分钟就自动闪退了

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 3.7.3

手机系统: Android

手机系统版本号: Android 5.1

手机厂商: 广告机

手机机型: 未知设备,就是配置很垃圾的机器

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

主页:pages / Index.vue -> 子组件 pages / Home.nvue -> 子组件 componets / main / h5-video.nvue

主页:pages / Index.vue :

    <template>  
        <view class="index-images"   >  
            <Home  ref="home" ></Home>  
        </view>  
        </template>  

    import Home from './Home.nvue'  
       <script>  
    export default {  
        components: {  
            Home  
        },  

    }  
      </script>

子组件 pages / Home.nvue:

<template>  
    <view >  
        <swiper  class="swiper" style="height: 100vh;" @change="changeSwiper" :indicator-dots="false" :autoplay="true" :interval="1000" :duration="0"  :disable-touch='true' >  
            <swiper-item v-for="(v,k) in list">  
                <h5Video v-if="k == swiperIndex" :config="v.path"/>            
            </swiper-item>  
        </swiper>  
    </view>  
</template>  
<script>  
    import h5Video from '@/components/main/h5-video.nvue'  
    export default {  
        components: {  
            h5Video,  
        },  
        data() {  
            return {  
                list:[  
                    {key:0,path:'https://chama.oss-cn-beijing.aliyuncs.com/storage/default/2023039/1c5375f437aa2bebcafe3e4f333a34c9d0e682ad.mp4'},  
                    {key:1,path:'https://chama.oss-cn-beijing.aliyuncs.com/storage/default/2023039/a5a71a84da8c76d0c4953077e2abdd7b2c607856.mp4'},  
                ],  
                swiperIndex: 0,  
            }  
        },  
        //方法集合,  
        methods: {  
            changeSwiper(e) {  
                this.swiperIndex = e.detail.current  
            },  

        },  

    }  
</script>  
<style lang='less' scoped>  
</style>

子组件 componets / main / h5-video.nvue

 <template>  
    <view  >  
            <video  
             v-if="src"   
                :http-cache='false'  
                :custom-cache='false'  
                codec='software'  
                @error="videoErrorCallback()"  
                :autoplay="true"  
                :loop="true"  
                :src="src"  
                :controls="false"  
                :show-fullscreen-btn='false'  
                object-fit='fill'  
                style="width: 500px; height: 600px;"          
            />  
    </view>  
</template>  

<script>  

export default {  
    props: { config: String },  
    data() {  
        //这里存放数据  
        return {  
            src:''  
        };  
    },  
    //方法集合,  
    methods: {  
        videoErrorCallback(){  
            this.$nextTick(()=>{  
                this.src = this.src+"?time="+ new Date().getTime()  
            })  
        }  
    },  
    //生命周期 - 创建完成(可以访问当前this实例)   
    created() {  
        this.src = this.config  
    },  
    beforeDestroy()  
    {  
        this.src=''  
    }  
}  
</script> 

操作步骤:

打开就行,让他一直跑。 跑着跑着视频 播放器就会越来越卡。最后 直接闪退, 我的广告机器上大概在10分钟就闪退
闪退的视频地址: http://zqw.muguaya.com/test.mp4

预期结果:

希望app可以一直播放,不闪退。因为是播放广告。所以闪退是不可接受的
闪退的视频地址: http://zqw.muguaya.com/test.mp4

实际结果:

app闪退
闪退的视频地址: http://zqw.muguaya.com/test.mp4

bug描述:

uniapp打包app, swiper嵌套video,自动播放不到1-分钟就自动闪退了,源码我已经上传了

!

2023-03-21 13:55 负责人:DCloud_Android_ST 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

有人吗,大佬们 救救孩子

  • 1***@qq.com (作者)

    有人吗,大佬们 救救孩子

    2023-03-21 16:15

1***@qq.com

1***@qq.com (作者)

毁灭吧

1***@qq.com

1***@qq.com (作者)

有没有啥解决方案,给个思路也行啊,大佬们

  • 冬至D

    我的思路哈,有没有可能是每次切换的时候,清除掉上一个的video

    2023-03-21 16:37

  • 冬至D

    越来越卡,我感觉可能是每次都打开一个新的,打开的越多就越卡,导致自动退出

    2023-03-21 16:37

  • 1***@qq.com (作者)

    回复 冬至D: 咋给清除掉, 我在video组件里用了 beforeDestroy()

    {

    this.src=''

    }

    if 成false,是不是属于清除掉了

    2023-03-21 16:38

  • 冬至D

    回复 1***@qq.com: 模拟器会退出吗,我现在用模拟器再跑

    2023-03-21 16:56

  • 1***@qq.com (作者)

    回复 冬至D: 我用我手机跑,也会闪退,但是撑的时间比广告机多一丢丢

    2023-03-21 17:01

  • 1***@qq.com (作者)

    回复 冬至D: 模拟器没试过

    2023-03-21 17:01

  • 冬至D

    回复 1***@qq.com: pages / Home.nvue 页面 v-if 改成 v-show 目前安卓模拟器我跑了十分钟整 无卡顿无闪退

    2023-03-21 17:06

  • 冬至D

    回复 冬至D: 十三分钟无闪退,你试一下吧,我下班了

    2023-03-21 17:09

  • 1***@qq.com (作者)

    回复 冬至D: 应该是和 安卓的配置有关系,这机器干啥都卡,安卓5.1的,所以撑的时间没其他机器久就闪退

    2023-03-21 17:13

冬至D

冬至D

真的会有人开着屏幕看十分钟吗,纯属好奇,哈哈哈哈哈

  • 1***@qq.com (作者)

    商场的大屏机,疯狂播广告,一播就一天的那种

    2023-03-21 16:36

DCloud_heavensoft

DCloud_heavensoft

只搞2个video,轮播时只是切换这2个video的视频源,不要搞一大堆video组件

  • 1***@qq.com (作者)

    我上边测试代码。就循环出来2个video组件,通过 swiper 轮播的index if控制 组件, 完了 一直轮播轮播,就闪退了,

    2023-03-21 16:44

1***@qq.com

1***@qq.com (作者)

闪退的视频地址: http://zqw.muguaya.com/test.mp4

DCloud_Android_ST

DCloud_Android_ST

机器可以真机调试吗 如果可以用HX真机调试 然后闪退后, 查看下机器设备储存根目录 “/Android/data/io.dcloud.HBuilder/logs/io.dcloud.HBuilder/crash/ ” 崩溃日志log文件 发出来

  • 1***@qq.com (作者)

    v-if 改成 v-show 暂时解决闪退的问题了,但是 用v-show控制video,没办法实现 重置视频 从头播放

    2023-03-22 11:08

  • 1***@qq.com (作者)

    hx没有创建 /logs文件夹

    2023-03-22 11:08

  • DCloud_Android_ST

    回复 1***@qq.com: 没有日志文件说明没捕获到问题 应该是底层错误

    2023-03-22 12:20

要回复问题请先登录注册