#javascript #ios #html #cocos2d-js #howler.js
#javascript #iOS #HTML #cocos2d-js #howler.js
Вопрос:
Итак, создаем HTML5-игру с использованием нового Cocos2D Javascript 3.0, который только что вышел. Столкнитесь с довольно раздражающей болью в заднице с тем, как воспроизводится звук на iOS и iPad. Моя игра нацелена на то, чтобы быть кроссплатформенной, а аудио работает на устройствах с браузером и Android. Он работает даже на Windows Phone!
Я пытался манипулировать обработчиком событий iOS (я знаю, что он не позволяет воспроизводить аудио, если пользователь не взаимодействует с устройством), но предыдущие версии cocos2D HTML5 предполагали, что это звуковой движок, используемый для поддержки iOS без каких-либо проблем. Теперь, похоже, этого не происходит…
Также я рассмотрел такие альтернативы, как Howler.js , однако для реализации этого для работы с iOS требуется, чтобы у меня был SimpleAudioEngine, которого, как я полагаю, нет в версии 3.0.
Может кто-нибудь порекомендовать какие-либо решения? Я был бы достаточно счастлив, если бы мог даже просто воспроизводить фоновую музыку на iOS.
Я использовал это, чтобы помочь всем заинтересованным http://www.cocos2d-x.org/docs/manual/framework/html5/release-notes/v3.0a/upgrade-guide/en
Ответ №1:
Исправлено. Как я уже сказал, вы можете воспроизводить звуки только после того, как пользователь фактически взаимодействовал с системой, с помощью касания или щелчка и т. Д… У меня было это до того, как я задал свой вопрос. Похоже, проблема заключалась в том, что аудио не было загружено вовремя для запуска события: D
Изменил мой звук на .mp3, поскольку он намного меньше, и обернул мою музыку для воспроизведения при вводе кнопки.
var closeItem = cc.MenuItemSprite.create(
cc.Sprite.create(res.play),
playButton,
function () {
cc.log("New Game!");
this.playEffect();
);
playEffect:function() {
var audioengine = cc.audioEngine;
audioengine.playMusic(res.music, true);
}
Комментарии:
1. Да, раньше в audioengine был метод «предварительной загрузки», но, похоже, он исчез из версии 3.