Микрофон без звука

Программирование на Юнити.

Микрофон без звука

Сообщение Overmind 17 июл 2019, 00:59

Я использую скрипт который определяет громкость микрофона. Но при этом он записывает клип который ставит на прослушивание в AudioSource, я получается слышу сам себя. Но если я выключу громкость в AudioSource то громкость не будет определятся. Как можно получить громкость но при этом не слышать сам себя? И еще, если я сверну игру то этот клип перестает записываться и начинает проигрываться с самого начала, можно как то начинать запись заново если старая закончилась?
Код:
Синтаксис:
Используется csharp
void Start()
    {

        sensivity = StaticLoaderSettings.sensivity;
        audioSource = GetComponent<AudioSource> ();
        if (UseMicrophone)
        {
            if (Microphone.devices.Length > 0)  
            {
                SelectedDevice = Microphone.devices[0].ToString();
                audioSource.clip = Microphone.Start(SelectedDevice, true, 2, 44100);

               
            }
            else
            {
                UseMicrophone = false;
            }
        }
        else
        {
            audioSource.clip = audioClip;
        }
        audioSource.Play();
    }

    private void Update()
    {
        loundless = getVolume() * sensivity;
    }

    float getVolume()
    {
        float[] data = new float[128];
        float a = 0;
        audioSource.GetOutputData(data, 0);
        foreach (float s in data)
        {
            a += Mathf.Abs(s);
        }
        return a / 128;
    }
Overmind
UNец
 
Сообщения: 5
Зарегистрирован: 13 июл 2019, 19:10

Re: Микрофон без звука

Сообщение AngryCat 17 июл 2019, 10:19

А если в Audio Source поставить галочку Mute? Будет записываться?
И еще вопрос, чему равна переменная audioClip в этой строке?
Синтаксис:
Используется csharp
audioSource.clip = audioClip;
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: Микрофон без звука

Сообщение Overmind 17 июл 2019, 11:03

AngryCat писал(а):А если в Audio Source поставить галочку Mute? Будет записываться?
И еще вопрос, чему равна переменная audioClip в этой строке?
Синтаксис:
Используется csharp
audioSource.clip = audioClip;

Если поставить mute тоже ничего записываться не будет.
Эта строчка означает что если запись с микрофона отключена будет проигрыватся другой клип

Overmind
UNец
 
Сообщения: 5
Зарегистрирован: 13 июл 2019, 19:10

Re: Микрофон без звука

Сообщение IDoNotExist 17 июл 2019, 11:28

Overmind писал(а):Я использую скрипт который определяет громкость микрофона. Но при этом он записывает клип который ставит на прослушивание в AudioSource, я получается слышу сам себя. Но если я выключу громкость в AudioSource то громкость не будет определятся. Как можно получить громкость но при этом не слышать сам себя? И еще, если я сверну игру то этот клип перестает записываться и начинает проигрываться с самого начала, можно как то начинать запись заново если старая закончилась?
Код:
Синтаксис:
Используется csharp
void Start()
    {

        sensivity = StaticLoaderSettings.sensivity;
        audioSource = GetComponent<AudioSource> ();
        if (UseMicrophone)
        {
            if (Microphone.devices.Length > 0)  
            {
                SelectedDevice = Microphone.devices[0].ToString();
                audioSource.clip = Microphone.Start(SelectedDevice, true, 2, 44100);

               
            }
            else
            {
                UseMicrophone = false;
            }
        }
        else
        {
            audioSource.clip = audioClip;
        }
        audioSource.Play();
    }

    private void Update()
    {
        loundless = getVolume() * sensivity;
    }

    float getVolume()
    {
        float[] data = new float[128];
        float a = 0;
        audioSource.GetOutputData(data, 0);
        foreach (float s in data)
        {
            a += Mathf.Abs(s);
        }
        return a / 128;
    }

AudioSource вообще не нужен в этой ситуации, данную задачу можно решить с помощью AudioClip с микрофона.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9