2010-07-03 10 views
2

Je suis nouveau sur XNA et j'essaie de permettre à l'utilisateur d'éditer un fichier audio dans lequel il a été chargé. Dans XNA, est-il possible de sélectionner une période (par exemple 0:00 - 0: 10) et «recadrer» cette partie en tant qu'entité séparée? Je suppose, essentiellement, que c'est simplement copier ces données dans un nouveau fichier. Cela peut-il être fait en utilisant la bibliothèque XNA Audio et, si oui, quelles méthodes dois-je examiner? MerciRecadrage audio avec XNA

Répondre

0

Si vous pouvez attendre XNA 4, il y a un faible niveau d'accès aux buffers, et vous pouvez le recadrer comme bon vous semble. Une recherche google de "fichier wav C#" révèle beaucoup de liens qui vous montrera comment manipuler les données en mémoire.

Télécharger XNA 4.0 beta ici:

http://creators.xna.com/en-US/launchcenter

Voici un lien qui explique comment utiliser la nouvelle API:

https://blogs.msdn.com/b/ashtat/archive/2010/06/03/soundeffect-creation-in-xna-game-studio-4.aspx

0

Je ne vois pas un moyen de faire ce que vous dites mais dans le processus de recherche, je suis tombé sur ce Audio Overview utile et ce tutorial on using Microsoft's Cross-platform Audio Creation Tool (XACT). Puisque vous êtes nouveau sur XNA, j'espère que ces liens vous aideront.

Le problème semble être que l'on s'attend à ce que l'audio soit créé à la main plutôt que dans le jeu, selon vos besoins. Bien sûr, il n'y a pas de pénurie de audio editors externe comme Audacity, Aviary, waveosaur et Adobe SoundBooth pour aider à l'édition en dehors de la partie. Vous pouvez également utiliser les fonctions de lecture des bibliothèques XNA/XACT pour "simuler" le recadrage en stockant les sélections temporelles de l'utilisateur en tant que variables et en relisant uniquement les parties correspodantes de l'audio ultérieurement.

J'espère qu'une partie de cette aide dans une certaine mesure.

-gMale

+0

Salut, merci pour la réponse. L'audio chargé sera de l'utilisateur eux-mêmes, donc je ne serai pas en mesure de le modifier en dehors de l'application. Quelles méthodes dois-je utiliser pour enregistrer l'audio «recadrée» dans un nouveau fichier? – Skoder

0

Pour autant que je sache, XNA ne contient aucun moyen d'écrire simplement un objet musical ou cue dans un fichier.

Si vous souhaitez que l'utilisateur modifie l'audio de votre jeu XNA et l'enregistre en tant que fichier audio encore utilisable, vous devez découvrir le format de fichier correct et l'écrire directement. Cependant, si vous voulez juste qu'ils manipulent l'audio pour l'utiliser dans votre jeu, je crois que vous avez une autre option.

Vous pouvez sérialiser des objets (afin de sauvegarder votre état entre les parties). Vous pouvez stocker des valeurs représentant vos manipulations de l'audio (par exemple, les heures de début et de fin), et les sérialiser avec le repère. Je dois admettre que je n'ai jamais essayé de sérialiser un signal audio, mais vous pourriez essayer de pousser vos données dans le pipeline de contenu XNA, en le forçant à créer un fichier XNB pour vous à l'exécution.

+0

Merci. Quelles méthodes et classes devrais-je utiliser pour définir des informations telles que l'heure actuelle sélectionnée? Pour autant que je sache, je ne peux obtenir que le PlayPosition. Y a-t-il d'autres classes .NET qui pourraient m'aider à écrire dans un fichier WMA (par exemple Silverlight)? – Skoder