[C++][WinAPI]Odtwarzanie dźwięku

0

Siema. Jaką funkcją się odtworzyć dźwięk w WinAPI? Chodzi o muzykę w pliku np Mp3. Proszę o jakiś link do www ale po polsku.

0

https://www.google.pl/search?q=winapi+play+sound ...

http://msdn.microsoft.com/en-us/library/windows/desktop/dd743680%28v=vs.85%29.aspx - bez angielskiego dalego nie zajdziesz...
http://xion.org.pl/2009/07/31/playsound-bez-sciec/ - ale proszę, też pierwszy wynik w Google

Chodzi o muzykę w pliku np Mp3.

Np. mp3 czy może być wav? Bo odtworzenie mp3 jest z tego co pamiętam, trudniejsze

0

Wszystko jedno jakk format choć mp3 jest najlepszy. A jeśli chodzi o angielski to nie lubię po prostu czytać po angielsku poradników, bo mogę coś źle zrozumieć.

0

zawsze możesz użyć chrome do przetłumaczenia strony. Jak działa angielski techniczny -> polski techniczny tego nie wiem. Ale chiński bardzo fajnie tłumaczy :)

0

Jak dla mnie to z Mp3 jest mały problem - w końcu to "skompresowana muzyka". Zatem albo czytasz standard: http://tools.ietf.org/html/rfc5219 i piszesz wszystko sam albo wykorzystujesz jakąś bibliotekę w stylu LAME. Trudno przecież żeby WinApi dostarczało funkcji do obsługi wszystkich formatów muzyki/grafiki/video ot tak po prostu :)

0

Trudno przecież żeby WinApi dostarczało funkcji do obsługi wszystkich formatów muzyki/grafiki/video ot tak po prostu

I tak i nie. W ścisłym API Windows faktycznie tego nie ma, ale globalnie rejestrowane filtry DirectShow właśnie temu służą. A DirectX można w gruncie rzeczy uznać za podstawowy składnik systemu i jego API, API systemowym.

Odtworzenie dźwięku poprzez DirectX nie będzie o wiele trudniejsze niż bezpośrednio w WinAPI.

edit: na przykład za pomocą takiego kodu można odtworzyć dźwięk za pośrednictwem DirectX.

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);

IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
IMediaEvent   *pEvent;
long		 evCode;

CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, reinterpret_cast<LPVOID*>(&pGraph));
pGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<LPVOID*>(&pMediaControl));
pGraph->QueryInterface(IID_IMediaEvent, reinterpret_cast<LPVOID*>(&pEvent));

pGraph->RenderFile(TEXT("sciezka do pliku"), NULL);

pMediaControl->Run();

pEvent->WaitForCompletion(INFINITE, &evCode);

CoUninitialize();

Użyje on "kodeków" dostępnych w systemie, aczkolwiek w przypadku MP3 takowe dostarczane są razem z systemem operacyjnym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1