• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak uruchomić kilka dźwięków w tym samym czasie? [C++ Builder 6]

Object Storage Arubacloud
+2 głosów
849 wizyt
pytanie zadane 6 września 2015 w C i C++ przez maciekak Obywatel (1,300 p.)
Mam problem.

Pisze program w C++ Builderze 6, w którym chciałbym, aby kilka dźwięków było odtwarzanych w tym samym czasie, tzn. kiedy jeden jest odtwarzany kolejny mógłby się uruchomić nie przerywając poprzedniego.

Próbowałem funkcji sndPlaySound i PlaySound, kombinowałem z różnymi flagami, ale zawsze albo dźwięki się kolejkują, albo nie odgrywają, albo przerywają, a nie odtwarzają niezależnie od siebie.

Jakieś pomysły? Z góry dziękuję za pomoc :)

Pozdrawiam

1 odpowiedź

+2 głosów
odpowiedź 6 września 2015 przez event15 Szeryf (93,790 p.)
wybrane 12 września 2015 przez maciekak
 
Najlepsza
Dawno nie robiłem nic kompilowanego ale możliwe że tutaj będą potrzebne wątki?
komentarz 6 września 2015 przez maciekak Obywatel (1,300 p.)
Nie do końca zrozumiałem o co Ci chodzi, możesz jaśniej? :)
komentarz 6 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Mówi o obsłudze wątków, czyli prościej mówiąc, o czymś takim, co pozwoli Ci na wykonanie kilku rzeczy na raz :) (A nie tak jak zwykle, że drugie polecenie wykona się po zakończeniu pierwszego)
komentarz 6 września 2015 przez maciekak Obywatel (1,300 p.)
A jak takie coś zrobić? :)
komentarz 7 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Oj to już wyższa szkoła jazdy, poczytaj w Google,  ja sam się tym nie zajmowałem :D
komentarz 7 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
A, w sumie jeśli builder udostępnia taką opcję to nie powinno być tak trudno :)
komentarz 12 września 2015 przez maciekak Obywatel (1,300 p.)
Mam rozizanie!

Nie potrzebowałem używać żadnych wątków, ani nic z tych rzeczy, ale dzięki, że podpowiedziałeś, bez Ciebie już dawno bym mój program porzucił :)

Cały trick polega na tym, że zamiast funkcji sndPlaySound czy PlaySound trzeba użyć kilku obiektów TMediaPlayer (użycie tego obiektu jest pokazane w 11 odcinku Mirosława Zelenta na YT)

Obiekty MediaPlayer nie blokują się nawzajem, tzn. jeśli jeden odtwarza jakiś dźwięk, to drugi odtworzy go nie przerywając poprzedniego.

Np.

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
switch(Key)
        {
        case 'B':
                MediaPlayer1->Play();
                break;
        case 'V':
                 MediaPlayer2->Play();
                break;
        case 'J':
                MediaPlayer3->Play();
                break;

}

Jak naciśniemy np. wszystkie trzy klawisze na raz to odtworzą się wszystkie dźwieki na raz.

Mam nadzieję, że pomogłem.

Dziękuję wszystkim za pomoc.

Pozdrawiam
komentarz 12 września 2015 przez event15 Szeryf (93,790 p.)
Spoko :) zawsze możesz zrobić multisampler teraz i puszczać odpowiednie dźwięki w jakimś takcie, dzięki czemu np zrobisz rytm bębnów dźwięk gitary itp aż w końcu powstanie dobry podkład muzyczny :) Kiedyś coś takiego w technikum robiliśmy.
komentarz 12 września 2015 przez maciekak Obywatel (1,300 p.)
No właśnie, ja potrzebowałem tego, żeby zrobic perkusję, taką podstawową, teraz zostaje ją tylko ulepszać :)

Podobne pytania

0 głosów
1 odpowiedź 1,024 wizyt
0 głosów
2 odpowiedzi 209 wizyt
pytanie zadane 13 maja 2019 w Inne języki przez Kamil423 Początkujący (350 p.)
0 głosów
1 odpowiedź 180 wizyt
pytanie zadane 16 stycznia 2019 w Sprzęt komputerowy przez keBAB333 Nowicjusz (220 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...