收藏
回答

XRFrame的AssetLoader无法加载特定视频资源

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug XRFrame 微信iOS客户端 8.0.43(iOS)8.0.42(Android) 3.2.1(iOS)3.1.5(Android)

使用在wxml的方式加载视频材质资源,加载特定视频资源的时候,不触发bind:progress,不触发bind:loaded

更换视频后,可正常加载,代码如下:

<xr-scene class="scene" bind:ready="handleReady">
    <!-- 资源加载器 -->
    <xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
        <xr-asset-load type="video-texture" asset-id="video" options="loop:true" src="https://mbvs.ldmf.net/a7fd2b17.mp4" />
        <!-- 视频材质 simple | standard -->
        <xr-asset-material asset-id="mat" effect="simple" uniforms="u_baseColorMap: video-video" />
    </xr-assets>

    <xr-light type="ambient" color="1 1 1" intensity="1" />
    <xr-light type="directional" rotation="40 70 0" color="1 1 1" intensity="3" cast-shadow />

    <xr-mesh node-id="cube" geometry="cube" material="mat" />
    <xr-mesh position="0 -1 0" scale="4 1 4" receive-shadow geometry="plane" uniforms="u_baseColorFactor:0.4 0.6 0.8 1" />

    <xr-camera clear-color="0.4 0.8 0.6 1" position="0 1 4" target="cube" camera-orbit-control />
</xr-scene>
回答关注问题邀请回答
收藏

1 个回答

  • 无糖🇨🇳
    无糖🇨🇳
    2023-11-20

    经查证,此问题应该是由于视频的AVC编码版本导致的,经过ffmpeg转码后,此问题解决。肯请官方大大能不能增加xr-assets的onError事件,方便这种同质问题的处理。

    不能加载的AVC编码器为:

    经过ffmpeg转码后为:

    ffmpeg转码指令为:

    ffmpeg -i i.mp4 -y -c:v h264 -pix_fmt yuv420p -profile:v high -level 4.1 o.mp4
    
    2023-11-20
    有用 1
    回复 1
    • 无糖🇨🇳
      无糖🇨🇳
      2023-11-27
      新问题,转码后的视频,第一次进入不回调进度,第二次进入正常,我疯了,这个样子还是自己封装THREE来的稳妥,ε=(´ο`*)))唉
      2023-11-27
      回复
登录 后发表内容