2010-08-05 5 views
2

Quelqu'un peut-il m'aider à lire un fichier à partir d'un flux de données en utilisant FMOD ou d'une autre manière?C# FMOD en cours de lecture à partir du flux

i ont jusqu'à présent ceci:
Variables

private FMOD.System _fmod = null; 
    private FMOD.Sound _sound = null; 
    private FMOD.Channel _channel = null; 

code

 var file = File.ReadAllBytes("test.ogg"); 
     //MessageBox.Show("Bytes from file: " + file.Length); 

     FMOD.Factory.System_Create(ref _fmod); 

     var result = _fmod.init(2, FMOD.INITFLAGS.NORMAL, (IntPtr)null); 
     if(result != FMOD.RESULT.OK) ShowError(result); 

     var info = new FMOD.CREATESOUNDEXINFO(); 

     result = _fmod.createStream(file, MODE.CREATESTREAM, ref info, ref _sound); 
     if (result != RESULT.OK) ShowError(result); 

Toute aide serait grandement appréciée

+0

Salut! Puis-je demander comment vous avez réussi à faire fonctionner fmodex.dll en C#? J'ai de la confusion à ce sujet. Merci! – user488792

+0

Salut, désolé je ne pouvais pas le faire fonctionner ... À la fin, j'ai utilisé le format MP3 pour les fichiers audio, car je manquais de temps. –

Répondre

4

Tout d'abord je vous recommande fortement de jeter un oeil au "loadfrommemory" ex amplement qui est livré avec FMOD (il a aussi une version C#). Mais pour répondre à votre question ici:

  1. Vous devez remplir certains membres de la structure FMOD.CREATESOUNDEXINFO:

    info.cbsize = Marshal.SizeOf (info); info.length = fichier.Longueur;

  2. Vous devez dire FMOD que vous fournissez en mémoire des données avec le drapeau de openMemory:

    résultat = _fmod.createStream (fichier, MODE.CREATESTREAM | MODE.OPENMEMORY, informations ref, ref _sound);

Cela devrait être tout ce dont vous avez besoin pour démarrer.

+0

WOW

+0

: D: D: D: D: D: D vous êtes un dieu :) Je pensais que je ne serai jamais obtenir mon lecteur de musique dont je dois faire pour ma thèse de travail! :) FMOD est génial !!! –

+0

Hey merci, cela fonctionne maintenant, mais j'ai un autre problème, si je ne remplis que, disons, 10% du tampon, puis commencer à jouer, puis continuer à remplir le tampon, le son arrêter de jouer une fois qu'il atteint les 10% marque. Savez-vous pourquoi cela pourrait être? –