Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[allegro] puszczenie dźwięku i wyjście z pętli

Ostatnio zmodyfikowano 2011-03-26 01:24
Autor Wiadomość
McAffey
Temat założony przez niniejszego użytkownika
[allegro] puszczenie dźwięku i wyjście z pętli
» 2011-03-25 22:21:46
Witam. Wiecie może jak w allegro (4.4) zrobić aby po wywołaniu funkcji
play_sample
 można było wyjść z pętli a dźwięk by leciał dalej ? Tzn jak zrobię np :
if( mb == 1 ) play_sample( dzwiek, 150, 100, 1000, 0 );
 to jak wcisnę lewy myszy to dźwięk leci, ale oczywiście od razu po puszczeniu przycisku jest urywany (obojętnie w którym jest momencie dźwięku). A znacie może jakiś sposób, aby funkcją (niekoniecznie tą) puszczenie dźwięku tylko wywołać a potem niech się dzieje co chce ? Tzn tak, żeby zawsze dźwięk był puszczany do końca nawet jak (w tym przypadku) odciśniemy już lewy myszy. I dostosowywanie timera do długości dźwięku raczej nie wchodzi w grę ;P Z góry dziękuję i pozdrawiam ;)
P-29743
DejaVu
» 2011-03-25 22:22:58
Zapewne coś masz skopane w kodzie - jedna linijka tu nic nie pomoże.
P-29744
szyx_yankez
» 2011-03-25 22:25:45
Np. stwórz sobie drugi wątek, i w tym drugim uruchom funkcje do odtwarzania dźwięku.
P-29745
McAffey
Temat założony przez niniejszego użytkownika
» 2011-03-25 22:43:22
Zapewne coś masz skopane w kodzie
 Mi się wydaje, że to nie jest żaden błąd, po prostu dźwięk gra tylko gdy funkcja chodzi.
Np. stwórz sobie drugi wątek, i w tym drugim uruchom funkcje do odtwarzania dźwięku.
Kod który napisałem w pierwszy poście to był tylko przykład, prawdziwy kod jest troszkę (:P) bardziej skomplikowany. I najgorsze jest to, że program przechodzi do następnej linijki (tak mi się wydaje) jeszcze zanim skończy granie, czyli jeśli granie bym wziął w pętlę
if( odegrane == false )
 a po odegraniu wstawił
odegrane = true;
 to dźwięk byłby grany tylko przez niewychwytywalny ludzkim uchem ułamek sekundy. W związku z tym jedyne co mi na razie przychodzi  na myśl to odpowiedni timer, ale raczej mi się to nie uśmiecha. Naprawdę 0 pomysłów ?
P-29748
DejaVu
» 2011-03-25 23:02:31
Mój pomysł brzmi tak - google:
site:cpp0x.pl play_sample


/edit:
Efekt: http://cpp0x.pl/kursy/Kurs-Allegro-C++/Dzwiek/72
P-29751
McAffey
Temat założony przez niniejszego użytkownika
» 2011-03-25 23:13:43
No dobrze, ale co wynika z tej lekcji dla mojego problemu ;] Przeczytałem całą i nie wniosła ona niczego nowego do mojej wiedzy (po za tym, że ustawienie jednego argumentu na 127 daje równowagę dla głośników, ale nie ma to związku z moim problemem).
P-29755
DejaVu
» 2011-03-25 23:27:19
Napisz prosty kod na podstawie tutoriala, i udowodnij, że nie działa :) Z kursu wynika, że wywoływana jest funkcja play_sample przed pętlą, więc dźwięk gra sobie w tle.
P-29757
McAffey
Temat założony przez niniejszego użytkownika
» 2011-03-25 23:37:55
Tak, ale nie gra po wyjściu z ifa (nie dokańcza się granie do końca dźwięku). A ja go potrzebuję w sytuacji która podczas trwania programu dla danej wartości występuje tylko raz. Czyli jakoś go muszę zaifować (albo rozwiązać to w jakiś inny sposób) żeby gdy drugi raz wywołam tą samą sytuację dla tych samych wartości już dźwięk się nie odtworzył. Zobaczę jutro (bo na dziś się już pożegnałem z kodem) czy uda mi się odseparować fragment kodu o którym mowa i podzielić się nim tutaj ;)
P-29760
« 1 » 2
  Strona 1 z 2 Następna strona