移动设备上 cocos2d-javascript 中的音频问题
Problems with audio in cocos2d-javascript on mobile devices
我正在尝试查找一些有关cocos2d-javascript音频支持的文档。预加载音频并使用 mp3 或 ogg 格式使用标准方法播放它们:
var audioEngine = cc.AudioEngine.getInstance();
audioEngine.playEffect(s_sound);
// s_sound is a reference to a preloaded audio resource
在所有浏览器中都能完美运行。但是,当您在设备上加载浏览器时,假设iPhone 4s视网膜,没有音频播放,或者至少似乎没有音频播放超过几秒钟的声音。我还没有找到任何具体说明设备支持可能存在哪些限制的内容,也没有看到在任何人的示例游戏中解决此问题的尝试,例如 月球勇士 - 它也不会在 iPhone 4s 上播放音频。
我正在尝试同时播放多个声音。
每个有问题的声音长度超过 15 秒,并且是一个大于 500k 的文件
所有音频肯定都已加载,因为除非它们是,否则游戏不会出现
每个音轨都是吉他英雄类型游戏的背景音乐的一层。这就是为什么它们超过 500k 且超过 15 秒的原因。
也许这里有人遇到过类似的问题,并且可能知道一种保证移动设备上播放音频的方法?
到目前为止,可接受的答案是Howler.js和HowlerAudioEngine.js
我在脚本加载器中加载这两个文件,然后修改了Platform/HTML5/CocosDenshion/SimpleAudioEngine.js -
cc.AudioEngine.getInstance = function () {
if (window.devicePixelRatio > 1) {
if (!this._instance) {
this._instance = new cc.HowlerAudioEngine();
this._instance.init();
}
} else {
if (!this._instance) {
this._instance = new cc.AudioEngine();
this._instance.init();
}
}
return this._instance;
};
请注意window.devicePixelRatio > 1
我检测到视网膜显示或一般高清的位置。这可以替换为任何经过验证的检测"移动"各种 - 但是,sys.platform
和cc.config.deviceType
总是为我返回"浏览器",所以我现在求助于像素比,因为我的测试设备将返回 true。
然而,缺点是声音fx的交付仍然存在很大的延迟。我可以在很大程度上弥补这一点,所以这总比没有好。另外,我还没有找到音频文件的容差阈值(播放时间或数据长度(。我确实知道我大约 3 分钟的较长曲目即使在吼叫中也无法播放,但我的 1 分钟曲目可以播放。
如果您有任何更好,更可靠或只是对此的补充,请发布它。目前还没有足够的对cocos2d-javascript的支持,所以一切都有帮助。
- 动态加载的自定义javascript/jQuery/HTML5音频播放器的问题
- HTML5音频循环出现问题
- 关于火狐中音频标签的奇怪问题
- 在 javascript 数组中播放音频文件时遇到问题
- 在 Web 音频 API 中使用多个音频上下文是否存在相关问题
- Phonegap / Cordova-代码无法在Android上播放音频(不是路径问题)
- Web 音频 API 的音量控制和缓冲问题
- 用于HTML5音频问题的javascript填充程序
- 在 Chrome 中播放音频和流式传输问题
- 移动设备上 cocos2d-javascript 中的音频问题
- 火狐浏览器 (34.0.5) 中有问题的音频可视化工具 ||Firefox 和 Web Audio API 的问题
- JavaScript + HTML5 音频播放器 - 停止缓冲,事件处理程序问题
- 在使用 HTML5 在 React 中构建简单的音频播放器时遇到问题
- 当 MediaElementAudioSource 输出零时,如何播放音频,但 CORS 不再是问题
- PhoneGap音频问题
- 音频文件自动加载而不是在事件期间加载的问题
- 网络音频API质量差和Safari中的其他问题
- iOS(4.3)safari音频问题(多个文件)
- Cordova导出的Construct 2游戏音频问题的实现解决方案
- document.getElementById().src音频问题