10
votes

Jouer audio dans .NET / C #

Je suis un programmeur MFC expérimenté de nombreuses années, qui pour les années les plus récentes développent des applications commerciales dans l'objectif C pour Mac et iOS - J'essaie de vous mettre à la hauteur de .NET et C # (comme je 'm va bientôt être tenu de convertir une de mes applications commerciales de Mac en PC).

J'ai maintenant travaillé à travers quelques livres et comme un exercice pour vous familiariser plus familier avec .NET (et C #) J'ai décidé de faire la conversion d'une de mes applications commerciales autres .net comme Un exercice d'apprentissage et tout va bien (l'interface fonctionne bien, les structures de données vont bien) mais je dois pouvoir jouer audio.

Mon application Mac génère de l'audio d'une série de formules mathématiques - imaginez un générateur d'ondes - pas tout à fait la même chose que similaire. Sur le Mac, je génère l'audio audio signé de 16 bits, utilisez l'audio de base pour configurer le routage de sortie audio, puis obtenir un rappel chaque fois qu'un nouveau tampon d'audio est requis pour le routage audio (afin que je puisse générer l'audio à la volée). .

Je dois faire la même chose sur le PC. Malheureusement, je trouve que la documentation de MSDN soit un cas de "ne peut pas voir le bois pour les arbres" car il existe une quantité aussi importante de documentation. Je peux trouver des cours qui me permettront de charger et de lire des fichiers MP3 / WAVC, mais je dois générer le temps réel audio. Quelqu'un peut-il me dire dans la bonne direction pour trouver quelque chose qui me permettra de remplir des tampons à la volée car il leur joue?

thx


2 commentaires

Je connais peu sur ce sujet, mais j'ai trouvé cet article que peut aide: canal9.msdn.com/coding4fun/articles/...


Jetez un coup d'œil à cela: Play audio à partir d'un flux à l'aide de C #


5 Réponses :


2
votes

J'utilise Audière pour y accomplir et trouver cela fonctionne très bien.

C'est un C ++ Lib vraiment, mais il y a un Ensemble de liaisons Disponible pour C #.

Pour plus d'informations, voir La question que j'ai posée .


0 commentaires

2
votes

Vous devriez avoir un coup d'œil à FMOD qui permet ce type de fonctionnement et bien plus encore. C'est également une plate-forme transversale qui peut être intéressée si vous travaillez également sur un Mac.


0 commentaires

3
votes

J'ai créé une classe qui peut jouer audio donnée audio dérivé en entrée. Donc, si vous êtes capable d'emballer votre générateur sonore dans l'interface compatible , cela pourrait vous convenir.

Comment je l'ai fait - j'ai utilisé des méthodes non gérées Waveout * à partir de l'ancien API Windows Multimédia et géra la lecture de là.

Autres options - que je suis au courant de - Utilisez Waveout directement, à partir de ceci: http: //windowsmedianet.sourceforge.net/ ou écrivez votre propre filtre source DirectShow, mais cela pourrait être trop compliqué, car il doit être écrit en C ++.

Si vous êtes intéressé à donner à mon composant un essai, je peux la rendre disponible sans frais, car j'en ai besoin de test bêta (je ne l'ai utilisé que dans plusieurs de mes projets).

EDIT:

Comme il y a 6 upvotes à la question, j'apprécie gratuitement mon composant (si vous trouvez utile) ici: http://dl.dropbox.com/u/10020780/simplaieudioplayer.zip

Peut-être que vous pouvez réfléchir dessus :)


1 commentaires

Encore une fois, des charges de réponses, jetteront un coup d'œil à cela aussi, vous donnera des commentaires une fois que je l'ai essayé. À votre santé.



9
votes

J'ai utilisé Cet exemple dans plusieurs projets avec de bons résultats . C'est fondamentalement un wrapper .NET pour Forme d'onde Windows API audio en utilisant p / invoquer . Autres choix:


2 commentaires

Tous très utiles et la démonstration sinusoïdale sur le site Web de Naudio semble faire exactement ce que je veux, je devrais pouvoir modifier ce code et obtenir le résultat dont j'ai besoin, merci beaucoup!


Au bout d'une heure ou tellement, Nadudio devint et travaille parfaitement - mon application est maintenant expressivement auditive! Merci beaucoup pour la suggestion! : O)



1
votes

alvas.audio a 3 lecteurs audio: lecteur xxx

playerex xxx

et recordplayer xxx


0 commentaires