Autor Wątek: PlaySound() i wav z resourca  (Przeczytany 4489 razy)

Offline Poklik

  • GZU
  • Senior
  • ****
  • Podziękowań: 9
  • eee... 901
PlaySound() i wav z resourca
« dnia: Wtorek, 21 Sierpień 2007, 18:51 »
Potrzeba mi użyć PlaySound() w małym projekcie. Jako, że jest on mały to nie chcę dodawać żadnych bibliotek muzycznych itp. ma to być ta jednak WinAPIowska funkcja. Niby na pierwszy rzut oka wszystko z nią ok, nawet działa gdy wczytuję plik z "dysku" (w cudzysłowiu, gdyż dysk to w tym przypadku i tak RAM :) ), jednak wava z resopurca już nie trawi :(
Dla przykładu najprostszy programik z tą funkcją:

#include <windows.h>
#include "resource.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE, LPTSTR, int )
{
PlaySound(TEXT("IDR_WAVE1"), hInstance, SND_ASYNC|SND_RESOURCE);
return 0;
}

a w resourcach jest jakiś prosty wav:


Oczywiście po uruchomieniu wav nie jest odgrywany. Natomiast przy odczycie pliku bezpośrednio z "dysku" ten sam wav normalnie gra, czyli:
PlaySound(TEXT("\\sound.wav"), 0, SND_ASYNC);
Może ktoś będzie wiedzieć więcej na temat tego problemu, gdyż dla mnie wyczerapły się już pomysły. Dla mnie wydaje się, że jest to najprawdopodobniej coś z uchwytem instancji, jednak sam już nie wiem. >:(

PS. A żeby było śmieszniej to jest nawet przykład zastosowania na MSDN PlaySound() + wav w resourcach http://msdn2.microsoft.com/en-us/library/ms903664.aspx :jupi: Oczywiście nic mi to nie dało.

EDIT.
Zapomniałem napisać, że program kompiluję w eVC3 + PPC2002 SDK.
« Ostatnia zmiana: Wtorek, 21 Sierpień 2007, 18:55 wysłana przez Poklik »
Nie wiem co to, ale trzeba zrobić do tego maszynę wirtualną.

Offline mobi

  • Administrator
  • Core
  • *****
  • Podziękowań: 351
  • Wizard/HD2/Kaiser/SGS3/HTC E8/HTC 10/Xiaomi MiA1
Odp: PlaySound() i wav z resourca
« Odpowiedź #1 dnia: Wtorek, 21 Sierpień 2007, 22:32 »
z doskoku zaatakuje, jak uporasz sie z tym problemem, to może wystrugasz mi programik odgrywajacy dzwiek podczas wyswietkenia padu do podania PINa miau ;)



forum.mobione.pl - Android - Windows mobile - modyfikacje

Odp: PlaySound() i wav z resourca
« Odpowiedź #1 dnia: Wtorek, 21 Sierpień 2007, 22:32 »

Offline Poklik

  • GZU
  • Senior
  • ****
  • Podziękowań: 9
  • eee... 901
Odp: PlaySound() i wav z resourca
« Odpowiedź #2 dnia: Wtorek, 21 Sierpień 2007, 22:42 »
Problem roziązany dzięki pomocy Yarexa z PDAC, za co bardzo mu dziękuję. ;D
Okazało się, że trzeba użyć makra MAKEINTRESOURCE(res), czyli ostateczny kod, który działa to:
#include <windows.h>
#include "resource.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE, LPTSTR, int )
{
PlaySound(MAKEINTRESOURCE(IDR_WAVE1), hInstance, SND_ASYNC|SND_RESOURCE);
return 0;
}

Mobi: dźwięk podczas wpisywania pinu? Ale po co? ;D
Nie wiem co to, ale trzeba zrobić do tego maszynę wirtualną.

forum.mobione.pl - Android - Windows mobile - modyfikacje

Odp: PlaySound() i wav z resourca
« Odpowiedź #2 dnia: Wtorek, 21 Sierpień 2007, 22:42 »

Offline mobi

  • Administrator
  • Core
  • *****
  • Podziękowań: 351
  • Wizard/HD2/Kaiser/SGS3/HTC E8/HTC 10/Xiaomi MiA1
Odp: PlaySound() i wav z resourca
« Odpowiedź #3 dnia: Wtorek, 21 Sierpień 2007, 23:58 »
nie, nie podczas wpisywania
tylko dzwiek, ze pad sie zaladowal i mogę wpisac pin :)
jak robisz romy, a w miedzyczasie kilka innych rzeczy, to taki dzwiek przypomni mi, ze mogę wpisac pin.



Offline killcabbie

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 15
  • iPad, iPod touch, Defy
Odp: PlaySound() i wav z resourca
« Odpowiedź #4 dnia: Środa, 22 Sierpień 2007, 09:05 »
no wiesz Poklik, te nowe WM to nie to co przestarzałe 2003 gdzie wszystko było szybkie, teraz pockety odpalają się 5 minut jak prawdziwe kompy i szkoda czasu na gapienie sie na ekran  ;D

Offline mobi

  • Administrator
  • Core
  • *****
  • Podziękowań: 351
  • Wizard/HD2/Kaiser/SGS3/HTC E8/HTC 10/Xiaomi MiA1
Odp: PlaySound() i wav z resourca
« Odpowiedź #5 dnia: Środa, 22 Sierpień 2007, 09:56 »
5 minut to odpala mi sie xp, wm6 to 30 sec.



Offline Poklik

  • GZU
  • Senior
  • ****
  • Podziękowań: 9
  • eee... 901
Odp: PlaySound() i wav z resourca
« Odpowiedź #6 dnia: Środa, 22 Sierpień 2007, 12:20 »
Hmm, to może zrób tak: wrzuć ten programik odgrywający wava (tak, to ta jedna linijka kodu :) ): www.poklik.yoyo.pl/pliki/waver.exe (10.5kb) do \Windows a do HKLM\init\ dodaj nowy ciąg launcha z wartością waver.exe. Teraz powinno odgrywać wava po załadowaniu systemu. O to chodziło?

PS. XP w 5 minut? :o Nawet u mnie na starym łapciu p3 700mhz/128mb ramu startuje max 1-2 minuty.

EDIT.
Albo po prostu wrzuć to do startupu i gdy system się załaduje wtedy zagra wav.
« Ostatnia zmiana: Środa, 22 Sierpień 2007, 12:39 wysłana przez Poklik »
Nie wiem co to, ale trzeba zrobić do tego maszynę wirtualną.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: PlaySound() i wav z resourca
« Odpowiedź #7 dnia: Środa, 22 Sierpień 2007, 12:54 »
Cytat: Poklik
PS. XP w 5 minut? :o Nawet u mnie na starym łapciu p3 700mhz/128mb ramu startuje max 1-2 minuty.
Cóż... system to może i wstaje w minutę, ale jak się zaczną uruchamiać skanery antywirusowe, firewalle, które przed skanowaniem jeszcze sprawdzą, czy nie ma aktualizacji, i cholera wie co jeszcze, to mi też na Pentium D 3,4 GHz schodzi ładnych parę minut...  ::)

A tak wracając do sedna sprawy... Generalnie zasadą powinno być zawsze stosować MAKEINTRESOURCE, zarówno na PC, jak i na PPC. To zawsze działa.

Offline Poklik

  • GZU
  • Senior
  • ****
  • Podziękowań: 9
  • eee... 901
Odp: PlaySound() i wav z resourca
« Odpowiedź #8 dnia: Środa, 22 Sierpień 2007, 12:57 »
A tak wracając do sedna sprawy... Generalnie zasadą powinno być zawsze stosować MAKEINTRESOURCE, zarówno na PC, jak i na PPC. To zawsze działa.
Kurcze, tylko dlaczego w przykładzie na MSDN http://msdn2.microsoft.com/en-us/library/ms903664.aspx nic o tym nie pisało ???
Nie wiem co to, ale trzeba zrobić do tego maszynę wirtualną.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: PlaySound() i wav z resourca
« Odpowiedź #9 dnia: Środa, 22 Sierpień 2007, 14:50 »
Kurcze, tylko dlaczego w przykładzie na MSDN nic o tym nie pisało ???
Wiesz, jak jest... dobre zasady programowania i MS. Hmm  :P

forum.mobione.pl - Android - Windows mobile - modyfikacje

Odp: PlaySound() i wav z resourca
« Odpowiedź #9 dnia: Środa, 22 Sierpień 2007, 14:50 »

Offline mobi

  • Administrator
  • Core
  • *****
  • Podziękowań: 351
  • Wizard/HD2/Kaiser/SGS3/HTC E8/HTC 10/Xiaomi MiA1
Odp: PlaySound() i wav z resourca
« Odpowiedź #10 dnia: Środa, 22 Sierpień 2007, 19:22 »
pogadaliscie sobie?
to wracamy do sedna:
nie dziala :)
dalem launcha ostatniego i 3 i cisza, a dzwiek sam w sobie jest wery kool. wrzuce jeszcze skrota do autostarta, ale to będzie za daleko chyba.
Czekam do polnocy na dzialajace rozwiazanie.



Offline killcabbie

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 15
  • iPad, iPod touch, Defy
Odp: PlaySound() i wav z resourca
« Odpowiedź #11 dnia: Środa, 22 Sierpień 2007, 19:28 »
mobi a ten pin to jest jakiś programik czy coś systemowego? Bo może trzeba tego wave wstawić gdzieś pomiędzy systemowe launche a nie na końcu

forum.mobione.pl - Android - Windows mobile - modyfikacje

Odp: PlaySound() i wav z resourca
« Odpowiedź #11 dnia: Środa, 22 Sierpień 2007, 19:28 »

Offline mobi

  • Administrator
  • Core
  • *****
  • Podziękowań: 351
  • Wizard/HD2/Kaiser/SGS3/HTC E8/HTC 10/Xiaomi MiA1
Odp: PlaySound() i wav z resourca
« Odpowiedź #12 dnia: Środa, 22 Sierpień 2007, 20:11 »
ten pin jest na samym poczatku, nie ma pinu, nie ma startu
kolejnosc chyba nie mavznaczenia, bo tak czy owak powinien zagrac.
Jak by mi zagral na koniec, to bym kombinowal z kolejnoscia, ale mam cisze.

dodano: Środa, 22 Sierpień 2007, 19:43

ok., macie farta, wrzucenie do autostartu satysfakcjonuje mnie, gra w odpowiednim momencie
dzieki Poklik


dodano: Środa, 22 Sierpień 2007, 19:58

dobra przesmiewcy
jak mi teraz gra, mogę tlumaczyc :)
jak wgrywa sie po raz setny nowy ROM, to już nie gapie sie we wskaznik postepu, tylko robie jakies inne rzeczy, a taki dzwiek przypomni mi, ze nowka sie wgrala i ze mogę ja testowac.
Do tej pory tak bywalo, ze zapominalem o nowym romie :)
To jedno, a ubocznie totez sie przyda.
Mój XP laduje sie 5 minut, bo jest zaladowany roznymi  badziewiami jak kontenerowiec w Hongkongu.



Offline Poklik

  • GZU
  • Senior
  • ****
  • Podziękowań: 9
  • eee... 901
Odp: PlaySound() i wav z resourca
« Odpowiedź #13 dnia: Środa, 22 Sierpień 2007, 22:32 »
ok., macie farta, wrzucenie do autostartu satysfakcjonuje mnie
Uff, tym razem mi się upiekło. ;D

Co do init-launch to faktycznie był to zły pomysł. Może wtedy dźwięk nie był zainicjalizowany, czy coś w tym stylu. Co więcej, gdy jakiś inny program zacznie grać to PlaySound() wyłącza się, tyczy się to nawet PlaySound(0,0,0) gdzie nic nie gra a jednak dźwięk zamilknie.
« Ostatnia zmiana: Środa, 22 Sierpień 2007, 22:35 wysłana przez Poklik »
Nie wiem co to, ale trzeba zrobić do tego maszynę wirtualną.

forum.mobione.pl - Android - Windows mobile - modyfikacje

Odp: PlaySound() i wav z resourca
« Odpowiedź #13 dnia: Środa, 22 Sierpień 2007, 22:32 »