Wpis z mikrobloga

#programowanie #audio #cpp

Używał ktoś może biblioteki BASS? Bo kompilator zwraca mi uwagę na pewną rzecz i trudno mi się mu dziwić trochę.

Przedostatni argument tej funkcji ma rzekomo typ WASAPIPROC:
http://www.un4seen.com/doc/#basswasapi/BASS_WASAPI_Init.html

Tylko jak sobie klikniemy na niego to ukazuje nam się funkcja, która zwraca DWORD:
http://www.un4seen.com/doc/#basswasapi/WASAPIPROC.html

No i kompilator oczywiście nie chce mi tego przyjąć. Co trzeba zrobić?
  • 80
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@JoeBlade: Nic ten DWORD nie zmienił, natomiast BASS nie bardzo informuje z czym to jest kompatybilne.

Win32 version

-------------
C/C++, Visual Basic, and Delphi APIs and example projects are provided. To
use BASS with another language you will first have to convert
  • Odpowiedz
@Khaine: zakończył się błędem, bo próbujesz rzutować NULL`a na obiekt AudioCaptureBass* w WasapiProc i potem użyć ChannelGetData. Daj 'this' jako ostatni argument w BassWasapiInit
  • Odpowiedz
@JoeBlade: Dałem mu thisa tam gdzie mówisz, ale nadal to samo. Zakończył błędem. Inna sprawa, że w programie nie tworzę żadnego obiektu tej klasy na ten moment.
  • Odpowiedz
@Khaine: a czy jesteś pewien, że jest potrzebne użycie funkcji Bass_Init ? Poza tym wydaje mi się, że BASS_WASAPI_Init powinien przyjmować podobne parametry jak Bass_Init, czyli POPRAWNY index urządzenia WASAPI, częstotliwość oraz ilość kanałów. Zrób sobie enumeracje urządzeń dostępnych w systemie przed użyciem BASS_WASAPI_Init i sprawdx czy BASS_WASAPI_Init nie zwraca błędu.

Przed BASS_WASAPI_Initsprawdź czy parametry są przyjmowane przez wybrane urządzenie tym- BASS_WASAPI_CheckFormat
  • Odpowiedz
@JoeBlade: Nie no, muszę raczej mieć BassInit, bo WASAPI mi tworzy stream z którego gdzieś muszę przełożyć informacje. Dlatego mam drugi "cichy" stream z BASS gdzie przechwytuję to co przechodzi przez loopbacka i nakładając na niego encoder wav chcę go zapisywać do pliku. Zwróć uwagę, że pobieram info na temat WASAPI i potem tworząc stream BASS (funkcja startrecording) daję mu takie same parametry. Na ten moment w ogóle
  • Odpowiedz
@Khaine: jeszcze jedno mi się przypomniało. Parametry-częstotliwość i bity mają być takie same jakie są ustawione globalnie w systemie Windows dla głośników(lub domyślnego urządzenia odtwarzającego dźwięk). Innych nie da się ustawić, bo zawsze zwróci błąd.
  • Odpowiedz
@JoeBlade: Chodzi o to ustawienie w panelu sterowania czy w sterowniku Realteka? Bo w sumie to są różne.

Mam tu i tu 16 bit i 44100 Hz. Nadal to samo. Przy czym to i tak nie powinno sypać w tym momencie - program się w ogóle nie odpala a nie tworzę żadnego obiektu tej klasy, czyli konstruktor mi nic nie inicjalizuje. Jakby jebnął w momencie utworzenia to wtedy owszem, coś
  • Odpowiedz
@JoeBlade: Ogółem sprawdziłem na świeżym projekcie i tak samo crashuje od razu z tym kompilatorem. A na innych mam LNK. Na bank zjebczony kompilator. Sypie się nawet goły projekt.
  • Odpowiedz