Hé oui, je suis en forme ! Les questions fusent !
J’ai constaté un problème sur Vorple avec le paramétrage de bouclage. Je m’en suis sorti en utilisant à la place le concept de playlist a faire répéter, mais je me dis que c’est un peu bête de ne pas en parler. Après tout, j’ai peut-être fait une erreur. Et si c’est un bug, autant le rapporter.
Donc, voici le problème :
La première fois que je lance une musique en boucle, ça marche.
play music file "Blabla.mp3", looping;
Après, je la stoppe.
stop music;
Dès lors, si je veux remettre une autre musique en boucle, ça ne marche pas, elle se joue uniquement une fois.
Toute ma gestion de musique se fait via la même fonction qui va récupérer dans les rooms un paramètre textuel de nom de musique et la joue en boucle par défaut. Lorsqu’il y a changement de room, la fonction stoppe la musique est lance la suivante. En gros, c’est ça.
J’ai testé avec « clear the playlist », ça ne marche pas d’avantage.
Je crois que la documentation précise que cette instruction est incluse dans « stop the music » et « stop all audio ». Elle est indispensable pour mettre en œuvre une nouvelle playlist, mais puisque dans mon cas j’utilise déjà « stop the music », je n’ai pas eu à me pencher là-dessus.
Quoi qu’il en soit, looping continue de ne pas marcher.
Je continue sur les constatations de comportement étrange de Vorple.
La phrase « if audio file called « Blabla.mp3 » is playing » n’a pas l’air de très bien fonctionner. Je l’ai testé en combinaison avec l’exécution d’une commande différée par le java script.
En gros, toutes les 250 ms avait lieu un test de ce genre :
Si « Blabla.mp3 » est joué, ne rien faire, sinon jouer « Blabla.mp3 ».
Lors de la première lecture, c’est ok, mais après la boucle s’emballait.
La même boucle avec « if a sound effect is playing » marche très bien.
J’ajoute que ces tests audios ne semblent pas exister dans leur version négative.
« if audio file called « Blabla.mp3 » is not playing » provoque une faute de syntaxe par exemple.
Tu peux utiliser « unless » (signifiant « à moins que ») :
unless audio file called "Blabla.mp3" is playing:
Ou tu peux définir la condition toi-même :
To decide whether the audio file called "Blabla.mp3" is not playing:
if audio file called "Blabla.mp3" is playing, no;
yes.
Mais c’est une bonne suggestion pour Vorple. Pour les problèmes avec l’audio, j’essairai de voir ça aujourd’hui.
Le son était jouée plusieurs fois en se superposant, comme si la condition renvoyait toujours « faux » et du coup déclenchait le « sinon » de la structure, donc de nouvelles lectures.
Il me semble que c’est le même problème dans ce cas:
play sound effect file "Test.mp3";
if a sound effect is playing:
dire "Je sais que le son est joué.";
Sur mon ordi, la condition va être fausse. à mon avis, le lancement de la lecture n’est pas instantanée. Si on veut faire des tests fiables sur les fichiers sons, il faut imposer un délai entre le lancement de la lecture et le test. C’est possible avec une commande Java Script, comme tu m’as expliqué. En cas de test instantané, je passe par un autre moyen, une variable qui change par exemple.
Intéressant le coup du Unless. Sinon, je suis pour l’instant parvenu à me sortir de tous les problèmes que j’évoque ici. Je les mentionne juste pour les remonter.
EDITE :
Je reviens sur mes propos donnés au début de mon message. Ce n’est pas qu’une question de délai. J’avais oublié que la phrase « if audio file « Blabla.mp3 » is playing » semble encore moins fiable que « if a sound effect is playing », puisque dans les mêmes conditions la première va bugger et la seconde marcher.
Me revoilà pour une constatation un rien enquiquinante.
Certains fichiers audios ne se lancent pas alors qu’ils le devraient.
Ce n’est pas une question de code. Lors d’un test, tout peut bien aller, mais au suivant, un son peut passer à l’as, à peu près n’importe lequel. Il m’est même arrivé de ne plus avoir de son du tout.
Je n’avais pas ce problème avant. La quantité de fichiers audios est-elle responsable ?
Quoi qu’il en soit, j’ai l’impression que c’est dû à une petite instabilité de cette version de Vorple. J’espère vraiment que ce sera corrigé.
Si vous avez des idées pour arranger ça, je suis preneur. Par exemple, est-il possible/utile de créer des sous-répertoires ? Par exemple en faisant ça :
Techniquement, c’est possible d’utiliser des sous-répertoires, mais je ne pense pas que ce soit ça le problème.
Il commence à y avoir beaucoup de problèmes avec les sons.
Est-ce que tu pourrais créer un projet minimal reproduisant toutes ces erreurs et me l’envoyer pour que je puisse les signaler ? Comme ça je n’ai pas à m’amuser à toutes les recréer. Ce serait plus facile pour moi (mais sinon, tant pis).
Je ne suis pas parvenu à reproduire l’instabilité des sons que j’évoque juste au-dessus. Et ce n’est pas faute d’avoir testé en boucle cinq, six fois, en y allant le plus vite possible sur les contrôles.
L’instabilité est peut-être à mettre au crédit de mon ordinateur et non de Vorple.
Il devait être occupé par des tâches de fond ou s’être embrouillé dans le cache. Il aurait bien besoin d’une restauration. Mais du coup, c’est un témoin plutôt idéal. Si ça marche chez moi, ça marche forcément ailleurs. ^^
Une autre remarque. Avec le recule, je me rends compte que l’instabilité débutait toujours dans le seul lieu où je mettais en paramètre de lecture une chaîne de caractère incluant une structure if. C’est peut-être à éviter. Dans le doute, je vais tâcher de faire autrement.