Egret社区
本帖最后由 zpba 于 2020-9-18 17:27 编辑

最近做前后端切换的时候,发现背景声音停止播放后重新播放会有问题
切后台时使用先使用pos = soundChannel.position记录下当前播放到的位置,
然后使用soundChannel.stop()停止播放。
切换回前台时使用sound.start(  pos) 恢复播放。
现在发现的问题如下
1.apk包在安卓手机或者模拟器下,恢复播放的声音会正常从pos点开始播放。
但是声音播放完成一次后,开始循环的时候也是会从pos点开始循环,而不是从头开始。
2.在chrome浏览器下,前面几次会播放正常。
但是如果前后台切换几次后,从后台切到前台的时候,声音会从头开始播放,而不是从pos点开始。

会不会是我处理的方式不对?
求解决方案。

egret版本:5.3.9
native版本:1.0.5
分享到 :
0 人收藏

5 个回复

倒序浏览
zenggao  圆转纯熟 | 2020-9-14 14:29:37
this.stage.addEventListener(egret.Event.ACTIVATE, this.onActivateHandler, this);
this.stage.addEventListener(egret.Event.DEACTIVATE, this.onDeActivateHandler, this);

监听前后台游戏是否激活  激活播放    不激活不播放
zpba  登堂入室 | 2020-9-14 15:52:52
zenggao 发表于 2020-9-14 14:29
this.stage.addEventListener(egret.Event.ACTIVATE, this.onActivateHandler, this);
this.stage.addEvent ...

我是在
egret.lifecycle.onPause
egret.lifecycle.onResume
这里面处理, onPause的时候就停止播放,onResume时恢复播放。
播放跟跟停止现在看起来是正常的,就是感觉sound.play()设的参数不正常
zenggao  圆转纯熟 | 6 天前
zpba  登堂入室 | 5 天前
zenggao 发表于 2020-9-17 17:43
https://blog.csdn.net/weixin_30635053/article/details/95245177?ops_request_misc=%257B%2522request%25 ...

按这个帖子说的, 我用egret.lifecycle.onPause和egret.lifecycle.onResume应该没问题啊。
我觉得时机上是没问题的,应该是播放函数内部有问题了。
还请官方的人了解一下,会不会是个bug
你先把引擎升级到5.2.X或者5.3.X试试吧 3.3.9版本太低了
zpba  登堂入室 | 5 天前
本帖最后由 zpba 于 2020-9-18 17:28 编辑
app小王子 发表于 2020-9-18 14:48
你先把引擎升级到5.2.X或者5.3.X试试吧 3.3.9版本太低了

是5.3.9,我写错了发帖前我就是最新版本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部