Page 1 sur 1

[RESOLU]Agir sur le son .tbe sur le player vidéo

Publié : 19 Fév 2020 18:51
par Alkyssprod
Bonjour,

J'ai donc une nouvelle problématique.

J'ai donc un player qui contrôle la vidéo liée au PlayerVidéo.
Mais j'ai un son .tbe qui joue avec le plug-in Facebook.

le son est dans un GameObject nommé SpatDecoderFile.

Comment lier mes boutons pour que non seulement ça control la vidéo mais aussi le son svp ?

Mon Script :

Code : Tout sélectionner

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

public class VideoManager : MonoBehaviour

{
 
 private VideoPlayer videoPlayer;

        void Awake()

    {
        videoPlayer = GetComponent<VideoPlayer> ();

    }

 private void Start()

    {
        

    }
    
public void Play()
    {
        videoPlayer.Play();
    }

     public void Pause()
    {
        videoPlayer.Pause();
    }
    

    public void Stop()
    {
        videoPlayer.Stop();
    }
}

Re: Agir sur le son .tbe sur le player vidéo

Publié : 19 Fév 2020 20:52
par Max
Bonsoir,

Il te faut référencer le script que tu cherches à atteindre à partir de ton script VideoManager.cs, pour pouvoir utiliser ces fonctionnalités (comme le déclenchement d'un son), que tu pourras alors insérer dans la méthode Play() par exemple.
Pour en savoir plus, et accéder aux variables et/ou méthodes d'un script placé sur un autre GameObject,
voici un exemple de tuto qui devrait t'éclairer: https://www.youtube.com/watch?v=mD1nZO8SSvs

Re: Agir sur le son .tbe sur le player vidéo

Publié : 20 Fév 2020 13:38
par Alkyssprod
Merci,

J'ai donc essayé d'écrire mon véritable premier script à ma sauce avec l'aide de cette vidéo.

J'ai donc écris ceci :

La logique j'ai essayé d'appliquer est d'aller voir si ma vidéo est en mode pause ou play dans mon GameObject "Film" au travers du script VideoManager.

Si elle est en pause je demande à l'AudioListener de se mettre en pause, Si c'est pas le cas je demande qu'il continuer de jouer (play).

Mais j'ai une erreur :/ : Assets/Scripts/ManagerSound.cs(41,1): error CS1022: Type or namespace definition, or end-of-file expected

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
using TBE;
using System.Runtime.InteropServices;
using UnityEngine.UI;
using UnityEngine.AudioListener;


public class AudioListener : MonoBehaviour

{
   

    void Start () {

        Debug.Log(GameObject.Find("Film").GetComponent<VideoManager>().VideoManager);
            
        }
    }

    void Update (){

    }

    public void SoundControl(){

    if (VideoManager.Pause = True){
        AudioListener.Pause();
    }

    else

    {
        AudioListener.Play;
    }
         

    }
}

Re: Agir sur le son .tbe sur le player vidéo

Publié : 20 Fév 2020 14:29
par Max
Hello,

plusieurs choses de base.
Première chose, tu as visiblement une accolade de trop dans ton script (dans le fonction Start() ), Le message d'erreur devrait te mettre sur la voie.
En suite, évite de nommer tes classes avec le nom d'une classe de l'API Unity, dans le cas présent AudioListener. Cela ne va t'attirer que des soucis.
Enfin, pourquoi ce using "UnityEngine.AudioListener;" ?

Re: Agir sur le son .tbe sur le player vidéo

Publié : 20 Fév 2020 15:03
par Alkyssprod
Merci Ma pour tes éclaircissements.

J'ai regardé où j'avais une accolade de trop mais j'ai mal regardé ^^°

J'ai mis ce Using car je pensais interagir avec l'ApI Audiolistener (?)

Bon je viens de regarder et j'ai que des erreurs...

A la base j'aimerais mettre en pause l'audiolistener qui permettrait d'agir sur tous l'environnement sonore de ma scène.

Je pensais avec ce script cibler l'action play pause de mon script VidéoManager sur mon film.

mais ça ne marche pas :/

Re: Agir sur le son .tbe sur le player vidéo

Publié : 20 Fév 2020 15:29
par Aelhan

Code : Tout sélectionner

if (VideoManager.Pause = True)
Aïe ! Plusieurs erreurs là dedans.
Déjà tu appelles la method VideoManager.Pause et il te faut donc y mettre () . Mais ça ne marchera toujours pas, d'une part parce true ne prend pas de majuscule mais surtout parce que ce n'est pas un booléen... tu devrais en déclarer un, par exemple pauseBool que tu passes sur true quand tu es sur pause et sur false dans les method Play() et Stop() et Start() par exemple.

Re: Agir sur le son .tbe sur le player vidéo

Publié : 20 Fév 2020 16:14
par Alkyssprod
J'ai tout réécris, mais ça ne marche pas :( :( :( :

Code : Tout sélectionner

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



public class AudioListener : MonoBehaviour

{
   

    void Start () {

        Debug.Log(GameObject.Find("Film").GetComponent<VideoPlayer>().VideoManager);
            
        }
    
    void pause(){

        if (VideoPlayer.Pause = true) {
            AudioListener.Pause();
        }
    }

    void Play(){

        if (VideoPlayer.Play = true){
            AudioListener.Play();
        }
    }
   

    }

Re: Agir sur le son .tbe sur le player vidéo

Publié : 20 Fév 2020 16:24
par boubouk50
C'est n'importe quoi. Tu n'as rien réécrit, t'as juste séparé en 2 fonctions.
Tu n'as pas du tout tenu compte des conseils de Aelhan.
VideoPlayer est une classe, Pause est une fonction, true est un type et = une affectation.
En une ligne de 4 éléments, il y a 4 erreurs/non sens.

Donc une comparaison c'est == et pas =.
true est un booléen, tu ne peux pas le comparer à une fonction. Il faut le comparer à un autre booléen. (souviens toi, en primaire on peut pas additionner des pommes et des oranges -> un programme informatique est aussi con qu'un gamin de 5-6 ans). Magie, Unity a pensé à tout: isPlaying
Videoplayer.Pause () est une erreur car VideoPlayer est une classe, il faut que ce soit une référence. La voici: VideoPlayer maRef = GameObject.Find("Film").GetComponent<VideoPlayer>();

Re: Agir sur le son .tbe sur le player vidéo

Publié : 20 Fév 2020 18:32
par Alkyssprod
J'ai finalement réussi en faisant un deuxième "OnClic" sur mes boutons.
J'ai glissé le gameObject SpatDecodeur sur le deuxième OnClic,
J'ai pu accéder aux fonctions Play et Pause.

Ca a fini par marcher sans ligne de code. :naah: