Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème SoundBuffer  (Lu 4474 fois)

0 Membres et 1 Invité sur ce sujet

DbfZ

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Problème SoundBuffer
« le: Avril 16, 2020, 02:54:36 pm »
Bonjour tous le monde,
je me dépêche car j'ai cru voir que je n'avais que 60 minutes de Login !

Ainsi donc, j'ai un problème avec la partie Audio de la SFML.

Je suis actuellement sous Code::blocks 17.12, avec la SFML 2.5.0, OS Window10.
J'ai installé cette dernière en version "Statique" directement dans le "compiler setting" de Code::Block (et non uniquement sur le projet en court).

J'ai suivi le tuto d'installation du site SFML à la lettre et j'affiche le rond vert sans problème.
Ayant dans l'idée que c'était bon pour l'usage, j'ai suivi mon cours de formation C++ / SFML (création de fenêtre, gestion des sprites, gestion des collisions, ...) et tout s'est déroulé sans accro jusqu'à l'intégration des SoundBuffer.

j'ai bien pensé à mettre "#include <Audio.hpp>" et j'ai respecter les directives mon tuto mais un message d'erreur à émerger :
- "C:\SFML250\lib\libvorbis.a(block.o):block.c|| undefined reference to `oggpack_writeinit'|"

Ayant fait une recherche sur Google, j'ai lu que c'était à cause d'un mauvais ordre dans l'agencement des dépendances. Voici donc l'ordre de ma "Linker Setting" qui m'a donné ce message d'erreur :
- sfml-graphics-s-d
- sfml-graphics-s
- sfml-window-s-d
- sfml-window-s
- sfml-audio-s-d
- sfml-audio-s
- sfml-network-s-d
- sfml-network-s
- sfml-system-s-d
- sfml-system-s
- freetype
- gdi32
- ogg
-vorbis
-vorbisfile
-vorbisenc
- flac
- openal32
- opengl32
- ws2_32
- winmm
(il s'agit de l'ordre littéral, du haut vers le bas. Comme si j'avais screener mon écran).

Ayant lu que mon ordre n'étant probablement pas le bon, j'ai suivi l'ordre EXACTE [des premiers en face de sfml-graphics-s mis en haut de la liste, puis ordonné en descendant, décalant les doublons (opengl32) vers sa position la plus basse dans la liste montré sur le site] affiché sur le site SFML de mise en place des dépendances : https://www.sfml-dev.org/tutorials/2.5/start-cb-fr.php

Malheureusement, suite à cette réorganistion de l'ordre des dépendances, un nouveau message d'erreur à émergé :
- "Impossible d'exécuter le code, car openal32.dll est introuvable. La réinstallation du programme peut corriger ce problème."
Me voilà donc un brin démuni.

=> Sauriez m'afficher un screen de votre "Linker Setting" avec tous les modules et toutes les dépendances organisées -pour un SFML_STATIC- de la plus parfaite des manières ? * - *

Je lu aussi qu'il était nécessaire -même avec une création SFML static- de fourrer le openal32.dll dans ... un dossier, quelque part dans mon projet, mais j'avoue ne pas avoir compris où avec précision  Je précise que google ne m'a pas aidé à mieux comprendre de ce côté là et copier / coller ce .dll partout serait peu fiable et ordonné.

Si vous utilisez le module sfml-audio (que ce soit dynamiquement ou statiquement), vous devez aussi copier la DLL de bibliothèque externe dont il dépend, qui est OpenAL32.dll.
Ces fichiers se trouvent également dans <installation-de-sfml/bin>.

Sauriez m'orienter avec la plus grande précision ? :D

Note Annexe : Code::blocks semble être passé en version 20.03, sauriez-vous me dire s'il vaut mieux que je passe sous celle-ci ou si je devrais rester sous la C::B v17 tant que la SFML n'a pas été officialisée sur la C::B v20 ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème SoundBuffer
« Réponse #1 le: Avril 16, 2020, 05:29:05 pm »
Citer
je me dépêche car j'ai cru voir que je n'avais que 60 minutes de Login !
Hmm ?? Tu as dû mal voir.

Citer
=> Sauriez m'afficher un screen de votre "Linker Setting" avec tous les modules et toutes les dépendances organisées -pour un SFML_STATIC- de la plus parfaite des manières ? * - *
Puisque ça compile et ça lie, c'est que c'est bon maintenant ;)

Citer
Je lu aussi qu'il était nécessaire -même avec une création SFML static- de fourrer le openal32.dll dans ... un dossier, quelque part dans mon projet, mais j'avoue ne pas avoir compris où avec précision
Suffit de ne pas lire le tutoriel en diagonale. Juste avant la phrase que tu cites, il est écrit :

[...] copier les DLLs de SFML (qui se trouvent dans <installation-de-sfml/bin>) dans le répertoire où se trouve votre exécutable compilé

C'est pour cela que cette information n'est pas répétée dans la phrase que tu cites, qui suit immédiatement celle-ci.
Laurent Gomila - SFML developer

DbfZ

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re: Problème SoundBuffer
« Réponse #2 le: Avril 16, 2020, 06:14:44 pm »
Merci pour la réponse rapide ! :D

Pour la durée de connexion, je n'avais pas réalisé que je pouvais définir moi-même la durée de connexion (c'est la première fois que je vois ça, c'est pas mal pour désaturer le serveur :O )

Mon ordre de dépendance est bon alors ! Me voilà rassuré ! :D J'espère que ces questions de dépendance ne m'attraperont plus la jambe au moins jusqu'à la mise à jour de mon matériel informatique dans 40 ans ! x)

Je l'avais lu en plein, je te rassure, mais lors de mes testes, mettre le dll en compagnie du .exe ne changeait rien.
La situation s'est débloquée une fois que j'ai compris que c'était justement la ligne de code (celle qui réclamait et imposait d'avoir ce .dll à côté du .exe pour être acceptée) qui bloquait sourdement la nouvelle compilation du projet.
Résultat : il faut retirer cette ligne de code qui nécessite openal32.dll, compiler le projet une première fois, mettre le dll avec l'exe dans bin/release et debug, puis seulement ajouter la ligne de code pour recompiler à nouveau.
Mon erreur semble de n'avoir jamais songé à placer le openal32.dll avec l'.exe AVANT d'en avoir l'usage. Je le saurais pour l'avenir ! x)

Mais dans ce cas, est-ce que cela signifie qu'avant même de commencer à coder et les appeler dans le code, je dois joindre les .dll que je dois prévoir associer ?
Et pour mes ressources (image, son, ...), il faut que je les mette toutes en compagnie de cet exécutable avec les noms de dossier similaire à ceux déterminés dans le projet C::B  ? °_-

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème SoundBuffer
« Réponse #3 le: Avril 16, 2020, 10:23:00 pm »
Je ne sais pas ce que tu as fait, mais non, il n'y a aucunement besoin des DLLs, ni au moment de la compilation, ni au moment de l'édition des liens. Elles sont chargées uniquement lorsque l'exécutable est lancé.

Et oui, si ton code charge des fichiers (sons, images, ...) il faut évidemment que tu les distribues avec ton exécutable, à l'endroit où ton code va les chercher.
Laurent Gomila - SFML developer

DbfZ

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re: Problème SoundBuffer
« Réponse #4 le: Avril 17, 2020, 12:52:56 am »
Parfait !

Merci beaucoup et désolé pour le dérangement occasionné ! ^^

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème SoundBuffer
« Réponse #5 le: Avril 17, 2020, 08:27:29 am »
Ne sois pas désolé, si le forum existe c'est bien pour répondre aux questions ;)
Laurent Gomila - SFML developer