2013-10-02 3 views
-1

J'essaie de trouver de la documentation pour le support audio pour cocos2d-javascript. préchargement audio et les jouer avec la méthode standard en utilisant des formats mp3 ou ogg:Problèmes avec audio dans cocos2d-javascript sur les appareils mobiles

var audioEngine = cc.AudioEngine.getInstance(); 
audioEngine.playEffect(s_sound); 
// s_sound is a reference to a preloaded audio resource 

fonctionne parfaitement dans tous les navigateurs. Mais quand vous chargez le navigateur sur un appareil, disons iphone 4s retina, pas de lecture audio, ou au moins il ne semble pas de lecture audio pour les sons de plus de quelques secondes. Je n'ai rien trouvé qui spécifie précisément quelles limitations il peut y avoir dans le support de l'appareil, et je ne vois pas une tentative de résoudre cela dans les jeux d'exemple de quelqu'un comme Moon Warriors - qui ne joue pas non plus sur l'iphone 4s. J'essaie de jouer plusieurs sons simultanément.

Chaque son ayant des problèmes est de plus de 15 secondes et est un fichier supérieur à 500k

Tous les sons sont certainement chargé puisque le jeu ne semble pas à moins qu'ils ne

Chaque piste audio est une couche pour la musique de fond d'un jeu de type guitar hero. C'est pourquoi ils sont plus de 500k et plus de 15 secondes.

Peut-être que quelqu'un ici a eu des problèmes similaires et peut-être connaître un moyen de garantir la lecture audio sur les appareils mobiles?

Répondre

1

La réponse acceptable est donc loin de nous Howler.js et HowlerAudioEngine.js

je charge les deux fichiers dans mon chargeur de script, puis modifié Plate-forme/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; 
}; 

Avis window.devicePixelRatio > 1 où Je détecte l'affichage de la rétine ou HD en général. Cela peut être remplacé par n'importe quelle variété éprouvée de détection "mobile" - Cependant, sys.platform et cc.config.deviceType toujours retourné "navigateur" pour moi, donc j'ai eu recours au ratio de pixels pour l'instant puisque mon appareil de test retournera vrai pour cela. Les inconvénients, cependant, sont qu'il y a encore un retard substantiel dans la distribution du son fx. Je peux compenser cela pour la plupart, donc c'est mieux que rien. De plus, je n'ai pas trouvé le seuil de tolérance pour les fichiers audio (temps de lecture ou longueur de données). Je sais que mes plus longues pistes d'environ 3 minutes ne jouent pas même dans hurleur, mais mes pistes de 1 minute font.

Si vous avez quelque chose qui est mieux, plus fiable ou juste un ajout à cela, s'il vous plaît le poster. Il n'y a pas encore assez de support pour cocos2d-javascript, donc tout aide.

+0

Je suis également confronté au même problème, je suis capable de jouer du son sur tous les navigateurs sauf Mobile Safari, J'utilise la version Cocos2dx 3.10 de js, je n'arrive pas à trouver le fichier SimpleAudioEngine.js ici, j'ai cc. Fichier Audio.js Pouvez-vous m'aider avec ça maintenant? –

+0

On dirait que les choses ont changé depuis que ce problème est apparu. J'ai regardé plus de 3x et il semble que l'audio soit traité dans /cocos/audio/include/SimpleAudioEngine.h bien que je ne puisse pas garantir que la structure est toujours la même. Vous devrez peut-être modifier l'exemple de code ici pour travailler avec ce que cette classe est en train de faire maintenant. –

Questions connexes