像QQ音乐那样?
用Creator发布了一个应用,发现不行啊,放后台声音停止了啊
什么都不用做啊,就可以在后台播放。只要不杀进程啊。
用Creator发布了一个应用,发现不行啊,后台不能播放音乐啊,只能在应用里面才有声音
引擎默认在一些生命周期的回调函数(进后台,回前台)中做了自动的暂停和恢复
那要是想音乐在后台播放应该怎样做?
该怎样做?不要说一半啊
不改源代码的情况下 自己分别写安卓和OC的音乐播放器,然后直接JS调用OC 或者JAVA对应的静态方法。就可以了
我COCOS2DX 里面是这么干 CREATOR应该也一样吧
你意思是要修改源码,然后重新打包2d-x ?
你可以从 creator 的 engine 源码中 EVENT_HIDE、 EVENT_SHOW 事件的回调中找线索
CCGame.js 中有
* 在原生平台,它对应的是应用被切换到后台事件,下拉菜单和上拉状态栏等不一定会触发这个事件,这取决于系统行为。
* @property EVENT_HIDE
* @type {String}
* @example
* cc.game.on(cc.game.EVENT_HIDE, function () {
* cc.audioEngine.pauseMusic();
* cc.audioEngine.pauseAllEffects();
* });
*/
EVENT_HIDE: "game_on_hide",
在 audio 的源码中有 cc.game.on(cc.game.EVENT_HIDE, this._pausedCallback, this); 切后台暂停操作。如果单单通过注释这段代码,切后台后会继续播放音乐,那你就可以自己封装一个控制后台是否播放的接口。
如果失败的话,在 2d-x-lite 中找类似的线索。什么类型的游戏,要像 QQ 音乐一样后台播放音乐?
把声音放到安卓的service层
audio 的源码 在哪里?在 engine 里还是在 2d-x-lite 里?
“什么类型的游戏,要像 QQ 音乐一样后台播放音乐?”
做完后我会在社区公布,并@你
都有,上层控制逻辑主要在 engine,底层实现在 2d-x-lite
你是说只注释JavaScript engine 里就能实现这个功能了是吧,不用改动2d-x-lite并使用自定义2d-x-lite吧?
注释了 JavaScript engine 也要重新编译 JavaScript engine吧?相当于也使用了定制引擎了是吧?
推测是这样的,具体得你实际操作,验证
是的
官方有文档 http://docs.cocos.com/creator/1.9/manual/zh/advanced-topics/engine-customization.html
只是要重新编译 JavaScript engine哈?这个我会
我注释了 E:\CocosCreator201\resources\engine\cocos2d\core\components\CCAudioSource.js 中

重新编译安装包 E:\CocosCreator201\resources\engine

之后编译出包,测试失败,仍然不能后台播放。
我想原因可能是我根本没有用 CCAudioSource ,而是在用 audioEngine,而 audioEngine 根本没有类似 cc.game.on(cc.game.EVENT_HIDE, this._pausedCallback, this); 方法,所以根本也无从注释。
现在应该咋办?