C# wav's abspielen

Gauloi

Grünschnabel
Hi,
ich wollte unter c# sounds einbinden. bin aber diesbezüglich im netz nur auf zwei möglichkeiten gestossen dies zu realisieren:

1. per directX (wozu ich nichts genaueres gefunden hab, bzw. auch nicht glaube dass es für das reine abspielen sinnvoll wäre)

2. per dllimport (winmm.dll), dafür hab ich allerdings weder eine stopsound methode gefunden, noch kann ich damit mehrere sounds abspielen bzw. überhaupt irgendetwas anderes parallel machen.....zumindest weiss ich nicht wie.
kann mir da vielleicht jemand weiterhelfen?
 
vielen dank für die schnelle antwort,
auf den angegebenen link war ich auch schon gestossen, bloss ist dies ein wenig überdimensional, für mein kleines programm...
mich würde halt interessieren, ob es nicht einigermaßen einfach möglich ist wav-dateien abzuspielen ohne dass während des abspielens jegliche tastatur und andere events ignoriert werden.

ich dachte mir das diese winmm.dll diese möglichkeiten doch eigentlich liefern müsste
 
Du musst Interruptprogrammierung lernen.

dein sound läuft komplett im Interrupt.
Das heisst, so alle paar Töne, wird der sound, für Dich unhörbar, unterbrochen, und Die anderen Interupts (Tastatur, Maus...usw werden abgefragt, und nachher wird wieder in die ebenfalls im Interrupt laufende Routine von Dir gesprungen. Ist echt höhere schule, da Du sehr Hardwarenahe Programmieren musst.
Kommt schon fast an direktes Programmieren in Assembler.
Dort musst Du nämlich für so fast alles was Du erreichen willst, irgendeinen Interrupt ausführen, meistens noch irgendwelche Parameter übergeben, und schon erfolgt oftmals der Rücksprung.

Ich weiss nur, dass es verdammt schwer ist gute Tutorials zu Assembler zu finden, aber vielleicht ist dies in C etwas besser, da die Sprache viel verbreiteter ist.

für eine fast bis ganz umfassende Liste der Interrupts im google suchen nach Ralph Browns Interruptlist

Es ist auch möglich, Assembler und C zu kombinieren, indem Du den AssemblerQuelltext im C-Code einfügst, und entsprechende übergaben,
und Markierer verwendest. Genaueres weiss ich leider auch nicht, ich weiss nur das es geht.
 
au mann, ich glaub das wird mir dann doch etwas zu bunt, die ironie is ja, das es mit den mouse interrupts durchaus funktioniert, deshalb versteh ich nicht warum man andere sachen nicht auch gleich berücksichtigt hat.

was ich machen will ist halt, das parallele ablaufen von bildern und tönen.

und aus reinem interesse dachte ich mir ich probier mal c# aus, dass ja so wie ich dachte, ein ernstzunehmendes konkurrenzprodukt sein sollte.......der witz is doch dass es bei c++ überhaupt kein problem ist dieses zu realisieren, da gibts die playsound gleich mit dazu....und die funktioniert auch in meinem sinne, soweit ich weiss.
und nun muss ich bei c# interrupts abfragen, um ein wenig sound im hintergrund laufen zu lassen?
gibt es denn nicht vielleicht über Direct X ne vernünftige Lösung für mein Problem?

...obwohl ich mir auch nicht so recht vorstellen kann, dass das mit dem dllimport nicht auch funktionieren soll.....ich mein wer braucht den sowas, wenn man damit nicht mal zwei wav's gleichzeitig abspielen kann ohne interrupt programmierung?
 
Hardware nahes Programmieren wird mit C# nicht wirklich gehen, würde ich einmal sagen.

Du könntest die das Managed DirectX 9 SDK runterladen, die Tutorials durchsehen und verwenden.
 
Zurück