[MY-AL] Jouer un son externe pour appli WebGL

Questions à propos de la partie audio, y compris les problèmes de script s'y rapportant.
Amconline
Messages : 32
Inscription : 03 Mai 2017 11:10

[MY-AL] Jouer un son externe pour appli WebGL

Message par Amconline » 23 Oct 2017 11:14

Bonjour !
Je dois faire une application WebGL capable de lire un son externe (www). MP3 ou OGG, peu importe. Js ou c#, peu importe.
Une sorte de jukebox, quoi.
Après moulte recherches, je suis tombé sur pas mal de fonctions obsolètes, mais j'ai finalement réussi à trouver deux codes qui fonctionnent à peu près, du moins sous Unity (un JS et un C#).

Mon code JS marche marche sous Unity (en me faisant un erreur mais en fonctionnant quand même), le programme de charge aucun son si le build est lancé du navigateur (Chrome ou IE). C'est sans doute l'erreur (durant le chargement) qui bloque le Webgl...

Voici le petit code :

Code : Tout sélectionner

#pragma strict

var url : String;
var source: AudioSource;
var played = false;

function Start () {
    yield WaitForSeconds (3);
	var www = new WWW(url);	// Les sons doivent être au format OGG !
    source = GetComponent.<AudioSource>();
    source.clip = www.GetAudioClip();
}

function Update () {
    if(!source.isPlaying && source.clip.isReadyToPlay)
        playthesound();
}

function playthesound (){
	if (played == false){
		played = true;
		source.Play();
	}
}
Mon code C# vient d'un tuto vidéo. Il montre bien la progression de chargement, mais ne lit rien (ni sous Unity, ni avec le build)
Il est un peu plus complexe et agit sur une barre de chargement. Elle fonctionne, ce qui montre que la première partie du code marche. Reste plus qu'à jouer ce satané son !...

Voici son code :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadFile : MonoBehaviour {

    public string urlString;
    public GameObject progressBar;
    string url;
    WWW www;
    AudioClip clip;
    AudioSource _audioSource;

    private void Start()
    {
        _audioSource = GetComponent<AudioSource>();
    }

    void Update () {
		if (www!= null)
        {
            // modifie la progressbarre.
            print(www.progress);
            progressBar.transform.localScale = new Vector3(www.progress, 1, 1);
        }
	}

    IEnumerator LoadURL()
    {
        url = urlString;
        www = new WWW(url);
        clip = www.GetAudioClip(false, true);

        while (!www.isDone)
        {
            yield return www;
        }
        if (www.error == null)
        {
            _audioSource.clip = clip;
            _audioSource.Play();
        }
        else
        {
            // oups !
            Debug.Log("Et flute !");
        }
        yield return 0;
    }

    private void OnGUI()
    {
        urlString = GUI.TextField(new Rect(10, 10, 200, 20), urlString, 100);
        if (GUI.Button(new Rect(10,40,200,50), "Load URL"))
        {
            // On clique... ouatsnext ?
            StartCoroutine(LoadURL());
        }
    }
}
Il me suffirait que l'un ou l'autre fonctionne et je serai comblé, c'est pouquoi je vous passe les deux. Si quelqu'un voit ce qui cloche, ça serait top.

Voici une url pour tester au besoin (pour le C#) : http://amconline.free.fr/davi/mp3/BravoOGG.ogg

Merci beaucoup, bonne journée ! :)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [MY-AL] Jouer un son externe pour appli WebGL

Message par boubouk50 » 23 Oct 2017 11:26

Salut,

as-tu regardé du côté de l'asset store?
J'ai trouvé cet asset gratuit: https://assetstore.unity.com/packages/e ... ebgl-75612
Peut-être cela te conviendra.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Amconline
Messages : 32
Inscription : 03 Mai 2017 11:10

Re: [MY-AL] Jouer un son externe pour appli WebGL

Message par Amconline » 23 Oct 2017 11:40

Merci pour ta réponse.
J'ai déjà regardé plusieurs assets, dont celui-ci...
Ils sont généralement obsolètes, et celui ci me fait (avec la demo-scene) 15 erreurs à la base (projet vide avec juste cet asset)...

Image

Amconline
Messages : 32
Inscription : 03 Mai 2017 11:10

Re: [MY-AL] Jouer un son externe pour appli WebGL

Message par Amconline » 26 Oct 2017 10:19

Bonjour tous !
Du coup, personne ne peux m'aider ?
C'est vrai que de l'audio en externe en webgl, c'est pas commun...

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [MY-AL] Jouer un son externe pour appli WebGL

Message par boubouk50 » 26 Oct 2017 11:24

Oui, c'est sûr, pas tout le monde en fait. Et pour le coup, je te dirai de contacter l'auteur de l'Asset (pour ce cas).
Mais prenons les erreurs dans l'ordre:
As-tu bien le fichier FSBTool.exe dans le chemin donné?

N'y connaissant pas grand chose, j'irais chercher du côté de la page web qui accueille ton programme WebGL, peut-être Unity devrait simplement demander à la page web de charger et jouer le son, plutôt qu'Unity lui-même si tu vois ce que je veux dire.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Amconline
Messages : 32
Inscription : 03 Mai 2017 11:10

Re: [MY-AL] Jouer un son externe pour appli WebGL

Message par Amconline » 26 Oct 2017 13:48

boubouk50 a écrit :
26 Oct 2017 11:24
Oui, c'est sûr, pas tout le monde en fait. Et pour le coup, je te dirai de contacter l'auteur de l'Asset (pour ce cas).
Mais prenons les erreurs dans l'ordre:
As-tu bien le fichier FSBTool.exe dans le chemin donné?
Justement, ce FSBTool n'est pas dans l'asset, du coup je ne vois pas trop pourquoi ils l'ont intégré sans en parler...
Je vais creuser.
boubouk50 a écrit :
26 Oct 2017 11:24
N'y connaissant pas grand chose, j'irais chercher du côté de la page web qui accueille ton programme WebGL, peut-être Unity devrait simplement demander à la page web de charger et jouer le son, plutôt qu'Unity lui-même si tu vois ce que je veux dire.
Le truc c'est que j'ai une relation son/animation labiale dans Unity. J'ai peur que ça devienne tordu à programmer une synchro entre deux moteurs...

Je vais contacter le créateur de l'asset, tu as raison, c'est le plus simple.
Je reviendrai vous faire part de l'avancée du problème si ça peut aider quelqu'un d'autre...

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [MY-AL] Jouer un son externe pour appli WebGL

Message par boubouk50 » 26 Oct 2017 15:47

FSBTool.exe doit être un fichier d'Unity pas de l'Asset puisque c'est dans les dossiers Editor d'Unity.

Yep, c'est bien ça. Par contre, à partir de la 5.5, il s'appelle FSBTool64.exe. Il faut corriger ça dans le code de l'Asset avec le bon chemin.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Amconline
Messages : 32
Inscription : 03 Mai 2017 11:10

Re: [MY-AL] Jouer un son externe pour appli WebGL

Message par Amconline » 27 Oct 2017 09:22

Impeccable, c'est bien ça.
Il fallait aussi changer le chemin, ils ont rajouté deux dossiers (32 et 64 bytes).
Les erreurs sont parties.
Par contre, le build WebGL ne se lance pas, sous aucun navigateur...

Répondre

Revenir vers « Audio, musique et sons »