Sound Effects (Volume)

Bonjour,


 


Je suis actuellement entrain d'essayer de faire un petit jeu et je bloque sur les effets sonores. Je veux produire des petits sons lors de l'impact d'une balle sur un mur par exemple (*TIC*). J'ai utilisé pour commencer AVAudioPlayer mais le son avait un léger délai avant de le lancer, j'ai donc utiliser SystemSoundID qui m'a rendu heureux pendant pas mal de temps.  :)


 


Mais Voilà , aujourd'hui, je fais un "Menu de préférences" et j'aimerais à  partir de ce menu régler le volume des effets sonores, avant de commencer une partie. Avec AVAudioPlayer, c'était simple mais avec SystemSoundID je ne sais pas si c'est possible.


 


Alors est-il possible de modifier le volume ou existe-t-il un autre moyen d'émettre de petits sons, sans latence, avec le volume réglable?


 


Merci.


Réponses

  • AnisAnis Membre
    août 2013 modifié #2

    salut, je ne connais pas bien  SystemsoundID Mais il doit y avoir sans aucun doute une methode qui te permet de modifier le volume (regarde la documentation!)


     


    Ou sinon, tu utilise SimpleAudioEngine de la librairie cocos2d, qui est "selon moi" le moyen le plus facile pour gérer le son. Imagine il  y a une methode: balleToucheMur  qui comme son nom l'indique signifie que la balle touche mur. Dans la methode tu n'auras juste a utiliser cette petite ligne:



    [[SimpleAudioEngine sharedEngine] playEffect:@balledansmur.mp3];

    si tu veux modifier le volume, c'est simple aussi 



    [[SimpleAudioEngine sharedEngine] setEffectsVolume:0.5] //reduit le volume de moitier ici

    Si tu combine sa à  un slider de UIkit sa peut etre simpa (tu sais les mêmes truc pour gerer la luminosité dans les reglages de l'iphone par exemple). Et il y a d'autre truc utile que tu peut faire toujours super simplement, par exemple stopper l'effet puis le faire continuer, tu peu aussi gerer la musique d'arriere plan regarde la doc ici


  • AliGatorAliGator Membre, Modérateur
    août 2013 modifié #3
    Tout est dans la doc et le Programming Guide

    Multimedia Programming Guide

    In addition, when you use the AudioServicesPlaySystemSound function:

    • Sounds play at the current system audio volume, with no programmatic volume control available
    • ...
    Si tu veux ajuster le son, il faut donc utiliser autre chose que AudioServicesPlaySystemSound.
  • Merci. Anis, je vais me diriger vers ce que tu m'as dit. 


  • Voila donc j'ai regardé un peu ce que vous m'avez dit et surtout la librairie Cocos2d. Et voila, j'aimerais avoir votre avis, j'ai commencé à  réaliser mon projet en utilisant que des ViewControllers et UIImageViews, ayant bien avancé je me demandé si c'était vraiment mieux d'utilisé cocos2d sachant que je n'ai aucune base et que je basais ma réalisation de niveaux (différents niveaux dans mon jeu) sur  le StoryBoard. 


     


    Je n'ai pas vraiment envie de tout recommencer a zéro.


  • CéroceCéroce Membre, Modérateur
    août 2013 modifié #6
    C'est difficile à  dire, ça dépend beaucoup de ton projet.
    En gros, Cocoa n'est pas très adaptée au jeu vidéo, même si on arrive à  faire quelques trucs. De mon expérience, on peut faire un jeu "jouable" avec Cocoa, mais souvent, on veut quand même qu'un jeu soit très dynamique, et cela devient vite compliqué avec Cocoa. J'ai personnellement travaillé sur un jeu (connu) qui utilisait Cocoa/Core Animation, et la personne qui avait développé les premières version regrettait son choix.

    Si ton projet est un jeu vidéo, tu as effectivement intérêt à  reprendre tout avec Cocos2D ou Sprite Kit. Ton code sera plus clair, les possibilités beaucoup plus grandes, l'expérience finale sera meilleure.

    (Sprite Kit est le moteur 2D développé par Apple et qui sera intégré à  iOS 7 et Mac OS 10.9. Nous ne pouvons pas en causer ici pour l'instant, à  cause du NDA).
  • AnisAnis Membre

    Deja si tu veu choisir entre cocos2d et spriteKit je te conseille de choisir cocos2d meme si il est un tout petit peu plus dur à  prendre en main, il y a plus de support, une vrai communauté et un grand nombres de tutoriels et de livres qui parles de ça (en anglais par contre!). Et oui tu peu integrer cocos2d a ton projet. 


  • AnisAnis Membre

    t'as réussit? aller je t'aide il te faut que t'ajoute comme framework ceux la: 





     


    AudioToolbox.framework


    AVFoundation.framework


    GameKit.framework


    libz.dylib


    OpenAL.framework


    OpenGLES.framework


    QuartzCore.framework 





     


    puis tu va dans les builds settings, tu cherche Header Search Paths, tu clique dessus, une petite fenetre aparait tu clique sur + et tu ajoute  "cocos2d-2.x-ARC-iOS/libs/kazmath/include"


     


    ensuite tu importe cocos2d.h 

  • Merci de ton aide.


     


    Pour l'instant, je regarde  et j'apprend un peu comment marche cocos2d et je pense refaire mon projet avec ceci. Par conséquent je pense que cela va me prendre un peu de temps. 


     


    J'ai seulement un petit problème. Je veux utilisé UIkit et cocos2d, j'ai regardé des tutos et j'ai réussi à  m'en sortir seulement j'ai quelques message d'erreurs, que je ne comprend pas encore très bien, après avoir créer ma scène.


     


    OpenGL error 0x0506 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 573


    OpenGL error 0x0506 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 573


    OpenGL error 0x0506 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 573


    OpenGL error 0x0502 in -[CCGLView swapBuffers] 283


     


    (j'ai notamment suivi ceci : http://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/#comment-707108201)

  • AnisAnis Membre
    août 2013 modifié #10

    hmm sa t'arrive a quel moment?


Connectez-vous ou Inscrivez-vous pour répondre.