jednoczesne odtwarzanie kilku plików dźwiękowych (miks)

0

zrobiłem prosty program odtwarzający sample perkusji. zasadnicze jego działanie to parę linijek kodu:

 System.Media.SoundPlayer sp = new System.Media.SoundPlayer();
			System.Media.SoundPlayer sp1 = new System.Media.SoundPlayer();
			ConsoleKeyInfo re = Console.ReadKey();
				char r = re.KeyChar;

				else if (r == 'q')
				{

					sp1.Stream = global::composer.Resource1.kit_1203;
					sp1.Play();
				}
				else if (r == 'r')
				{

					sp.Stream = global::composer.Resource1.kit_1243;
					sp.Play();


Problem jednak w tym, że mimo utworzenia kilku instancji (sp, sp1) SymstemWindowsMediaPlayera, po wciśnięciu klawiszy jeden po drugim, jeden dźwięk 'zastępuje' drugi, a mi chodzi o to, by brzmiały jednocześnie. Co robić?

0

Użyć DirectX albo Xna.

0

w xna

SoundEffect Dzwiek;

Dzwiek = Content.Load("nazwa pliku");

Dzwiek.Play();

ale nie myślę żeby to był dobry pomysł...
do Xna trzeba zainstalować xna, ale z drugiej strony chyba xna jest automatycznie instalowany z DirectX(z tymi nowszymi).

0

Dzięki, pomogło :) Tylko powinno być Dzwiek = Content.Load<SoundEffect>("Dzwiek");

0

może i tak używam xna 3.1 ze względu ze mam sentyment do VC# 2008
:)

o ile się nie mylę w SoundEffect jest coś takiego jak FromStream tym tez można wyczytać

0

Zastanawiam się... Program do perkusji który (prosty na razie) napisałem powinien chodzić na wielu komputerach(jako że mam zespół muzyczny), ma ktoś rozeznanie, czy np. na Viście kolegi, z wszystkimi zainstalowanymi aktualizacjami, na której chodzą wszystkie gry (no czyli directx przynajmniej 9.0c jest), pójdzie taki programek napisany w xna? .Net Frameworki ma (nawet chyba wszystkie, a jak co to mogę zawsze (chyba) przekompilować na daną wersję). Chodzi o to czy na każdym systemie typu xp lub vista bez bawienia się w ściąganie i instalacje xna to pójdzie.

0

i tak i nie...

NetFrameWorka chyba dobrze napisałem,w wersji na którą kompilujesz program,bądź nowszą ver .net
Do tego dopiero nowsze pliki M$ z DirectX są z Xna.
A jeżeli ma starego to musi zainstalować XNA Framework Redistributable.

Moja propozycja byla by zrobić plik instalacyjny z XNA Framework Redistributable bo o .net nie ma co sie martwic już tak często jest wykorzystywany ze nie wiem

zresztą XNA Framework Redistributablema tylko 6MB.

Tu masz na DirectX ale ja bym przystał na Xna...
http://www.riemers.net/eng/Tutorials/DirectX/Csharp/Series2/tut17.php

0

A skoro to tylko 6 mb :P nawet nie wiedziałem że tak mało, moja instalka miała coś ~ 30 mb o.O. Ale na XNA śmiga ładnie, delajów w odtwarzaniu dźwięków nie ma żadnych, tylko jedna wada wynika z samej budowy klawiatury (komputer nie wychwyci na raz wciśnięcia więcej niż 3-4 klawiszy), ale mimo to osiągnąłem mój cel, dzięki bardzo za pomoc :)

0

Osobiście nie lubię XNA, bo nie działa mi na laptopie ;-)
Problem z tą biblioteką jest taki, że WYMAGA pixel szaderów na którymś-tam poziomie, nawet jeśli program jest na konsolę i odtwarza dźwięki — głupie niedopatrzenie…
Jeśli więc chcesz by program zadziałał na każdym „złomie” to weź to pod uwagę.

0

pixel sharder 1.1 minimalnie

0

a gdybym chciał przerobić to na directx, to jakie są że tak powiem "kruczki"? No oprócz tego że trzeba mieć zainstalowane directx, co akurat nie robi problemu, bo jest powszechne :P Gdzie mogę znaleźć info, taki poradnik dla zielonych, czy raczej dla kogoś kto przesiada się z xna?

0

http://www.riemers.net/eng/Tutorials/DirectX/Csharp/Series2/tut17.php

To już dawałem link

podobne wymagania czyli dot.Net (dobrze napisałem ?) w ver na którą kompilujesz.
I directX Ty SDK, a druga osoba zainstalowane biblioteki.

0

są jeszcze takie biblioteki jak BASS i FMOD, zapewne ktoś zrobił wersję dla .Neta.

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