调用setData成功后play,play回调成功,但播放器无画面
发布于 5 年前 作者 ujin 19626 次浏览 来自 问答

现象:

我们现在在同一个文件里,有两个方法,假设是 x,y

  1. 在 wxml 里,我们将 playUrl 的值设置为了 liveplayer 的 src,即 src="{{playUrl}}"

  2. 在 x 里,创建一个对象 { a: 1, b: 2 },并通过 setData,将该对象设置给 z

  3. 在 y 里,取出 z,向 z 中添加新的键值对:{ playUrl:’xxxx’,  player:wxCreateLivePlayerContext(‘key’, self) } ,再通过 setData 设置回去。所以此时,z 变成 {a: 1, b: 2, playUrl:’xxxx’,  player:wxCreateLivePlayerContext(‘key’, self)}

  4. 步骤 3 里的 setData 成功以后,我们按常规方法调用 player.stop(), player.play() ,最后发现,play() 调用成功(成功进入 success 回调),但是一直收不到 player 的状态事件回调,播放器一直没有画面


排查后:

如果第 2 步中,不对对象 z 在进行  { a: 1, b: 2 } 的设置,而是直接在第 3 步中仅将 z 设置为  { playUrl:’xxxx’,  player:wxCreateLivePlayerContext(‘key’, self) },播放成功,有画面


报错:

整个过程中微信底层没有任何报错。


问题是,是我们的使用问题,还是小程序 SDK Bug?

回到顶部