2009-07-04 7 views
0

j'ai fait un code pour jouer un .wav à travers mon appln.now je veux jouer un fichier mp3 à travers quelqu'un peut-il aider à contourner cela. herer j'ai framework .net 1.1 seulementjouer audiofile

+0

J'ai mal lu la question; manqué la partie mp3 ... –

Répondre

3

si vous avez .NET Framework 1.1. seulement, probablement votre meilleure approche est d'utiliser un P/Invoke pour emballage mciSendCommand

[DllImport("winmm.dll")] 
private static extern long mciSendString(
     string strCommand, StringBuilder returnString, 
     int returnBufferLength, IntPtr callback); 

void PlayFile(string mp3FileName) 
{ 
    string deviceType = "MPEGVideo"; 
    string fileName = mp3FileName; 
    string alias = "MyMp3File"; 
    string playCommand = string.Format("open \"{0}\" type {1} alias {2}", 
          fileName, deviceType, alias); 
    mciSendString(playCommand, null, 0, IntPtr.Zero); 
    playCommand = string.Format("play {0} from 0", alias); 
    mciSendString(playCommand, null, 0, IntPtr.Zero); 

    // send these when you are finished 
    // playCommand = "stop MyMp3File"; 
    // playCommand = "close MyMp3File"; 
} 
+0

thanx mark heath –

1

Vous pouvez essayer NAudio. Sinon, vous pouvez envisager d'utiliser une bibliothèque native à l'aide d'Interop.

+0

NAudio est compilé contre 2.0, bien que vous puissiez trouver que vous pouvez recompiler les bits dont vous avez besoin contre 1.1. Il existe des moyens plus simples (comme l'envoi d'une chaîne MCI) si vous devez simplement pouvoir démarrer et arrêter. –

1

Je suggère d'utiliser DirectShow - l'API RenderFile est extrêmement simple. This site semble montrer un wrapper géré pour DShow (programmeur caveat, je ne l'ai pas utilisé).

Modifier pour ajouter: Personnellement, je resterais loin des API MCI si possible - ce sont des API extrêmement anciennes et elles ne sont pas particulièrement fiables.

+0

Assez juste, je n'utilise pas les API mci moi-même. Mais bien que l'API RenderFile s'appelle elle-même simple, la quantité d'interfaces COM qui doivent avoir des wrappers .NET créés avant que vous puissiez démarrer est décourageante pour la plupart des développeurs, surtout si vous voulez jouer un fichier MP3. Le lien vers l'encapsuleur géré semble toujours très utile. +1 de moi. –