La lecture Audio .Net / C#
Je suis une expérimentée MFC programmeur de nombreuses années, qui au cours des dernières années a été le développement commercial des applications en Objective-C pour Mac et iOS - je vais essayer d'obtenir jusqu'à la vitesse avec .Net et C# (que je vais bientôt être obligé de convertir l'une de mes applications à partir d'un Mac à un PC).
Maintenant, j'ai travaillé mon chemin à travers un couple de livres et comme un exercice pour se familiariser avec .Net (C#), j'ai décidé de me lancer dans la conversion de l'un de mes aucun commercial apps .Net comme un exercice d'apprentissage et tout va bien (interface de travail, les structures de données de toutes les bonnes), mais j'ai besoin d'être en mesure de lire des fichiers audio.
Mon Mac app génère l'audio à partir d'une série de formules mathématiques - imaginez un générateur d'ondes - pas tout à fait la même, mais semblable. Sur le Mac, je générer de l'audio en 16 bits signé raw audio, utilisez Core Audio pour configurer la sortie audio de routage et ensuite obtenir un rappel à chaque fois qu'un nouveau tampon de audio est requis pour le routage audio (pour que je puisse générer de l'audio à la volée).
J'ai besoin de faire la même chose sur le PC. Malheureusement je trouver de la documentation MSDN pour être un cas de "vous ne Pouvez pas voir la forêt pour les arbres", comme il existe une telle quantité de documents. Je peux trouver des cours qui me permettra de charger et de lire les fichiers mp3/wav etc fichiers, mais j'ai besoin de générer de l'audio en temps réel. Quelqu'un peut me pointer dans la bonne direction pour trouver quelque chose qui me permettra de remplir les tampons à la volée comme il joue?
Thx
Jetez un oeil à ceci: lire des fichiers Audio à partir d'un Flux à l'aide de C#
OriginalL'auteur Richard Baxter | 2011-07-18
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé cet exemple dans plusieurs projets avec de bons résultats. Il est fondamentalement un .Net wrapper pour Les fenêtres de la forme d'Onde Audio API à l'aide de P/Invoke.
Autres choix:
Après une heure ou ainsi obtenu NAudio et en cours d'exécution et de travail à la perfection, mon application est expressément sonore! Merci beaucoup pour la suggestion! :O)
OriginalL'auteur yms
J'ai créé une classe qui peut lire des fichiers audio donné
Stream
dérivé comme une entrée. Donc, si vous êtes en mesure d'emballer votre générateur de sons dans leStream
interface compatible, il pourrait être approprié pour vous.Comment je l'ai fait - j'ai utilisé non géré
waveOut*
méthodes de vieilles Fenêtres, l'API multimédia, et manipulées de la lecture à partir de là.Autres options - que je suis au courant de l'utilisation
waveOut
directement, à partir de ce: http://windowsmedianet.sourceforge.net/ ou écrire votre propre DirectShow filtre source, mais que peut-être trop difficile, puisqu'il doit être écrit en c++.Si vous êtes intéressés à donner mon composant un essai, je peux la rendre disponible pour vous sans frais, car j'ai besoin d'elle bêta testé (je n'ai utilisé dans plusieurs de mes projets).
EDIT:
Comme il y a 6 upvotes à la question, je vous propose mes composant gratuitement (si vous le trouvez utile) ici: http://dl.dropbox.com/u/10020780/SimpleAudioPlayer.zip
Peut-être que vous pourrez y réfléchir 🙂
OriginalL'auteur Daniel Mošmondor
- Je utiliser Audiere à accomplir et il fonctionne très bien.
C'est une lib C++ vraiment, mais il y a un ensemble de fixations disponibles pour C#.
Pour plus d'info, voir la question que j'avais posée.
OriginalL'auteur Tom Wright
Vous devriez jeter un oeil à FMOD qui permet ce genre d'opération et beaucoup plus. Il est également multi-plateforme qui peut être intéressé, si vous êtes aussi sur un mac.
OriginalL'auteur jeremy-george
Alvas.Audio a 3 joueurs audio: Joueur
PlayerEx
et RecordPlayer
OriginalL'auteur Basil