Wpis z mikrobloga

Hej, zaczynam zabawę z #gamedev
Potrzebuję pomocy kogoś doświadczonego z mikrofonami w #unity
Dążę do tego żeby gra w czasie rzeczywistym brała info o głośności tego co zbiera mikrofon i potem przerobić to jakoś na float.
Ten znaleziony kawałek kodu zbiera te informację ale działa nie dość że z opóźnieniem to jeszcze nie radzi sobie z krótkimi dźwiękami jak np. nagły krzyk. ( ͡° ʖ̯ ͡°)
Za wszelkie wskazówki będę wdzięczny.

Pobierz Konstrukt - Hej, zaczynam zabawę z #gamedev
Potrzebuję pomocy kogoś doświadczonego z...
źródło: comment_AGzHf1lopy3eC4hVfc6zjayU6HuBLWPR.jpg
  • 7
@Konstrukt: wartość próbki dźwięku jest zależna od formatu dźwięku i może zawierać różne wartości np. int, float, unsigned float, unsigned int. Nie wiem jak w unity, ale w port audio w przypadku float dostajesz wartość od -1.0 do 1.0 i średnia dźwięku jest tu łatwa do obliczenia, bo masz dostępną ilość próbek, która wykorzystujesz to obliczenia średniej.
@MirekLurek: Szukałem trochę ale nie mogę znaleźć. To jest jakaś opcja w Unity?

@JoeBlade: No własnie, dostęp do tego floata nie jest aż tak trudny. Problem polega na tym że, przynajmniej moja metoda, robi nagranie 1 sekundowe i dopiero po tym czasie jestem w stanie wyciągnąć potrzebne informacje. Cały problem polega na tym że nie dzieje się to w czasie rzeczywistym.
@Konstrukt: to użyj wrappera port audio z C++ do C#, bo używanie czystego C++ chyba nie wchodzi w grę w Unity ?. Pobranie próbki dźwięku w czasie rzeczywistym już nie stanowi problemu. Całość odbywa się w funkcji zwrotnej a cały dostęp do dźwięku zajmie z tego co pamiętam nie więcej niż 10 linijek kodu. Używałem tej biblioteki do odczytywania oraz nagrywania dźwięku i nie miałem tutaj żadnych problemów.