2009-07-04 7 views
0

ich habe einen Code zum Abspielen einer .wav durch meine appln.now ich möchte eine mp3-Datei über kann jemand helfen, um das zu kommen. her ich habe .net Framework 1.1 nurplay audiofile

+0

Ich habe die Frage falsch gelesen; verpasste den mp3-Teil ... –

Antwort

3

Wenn Sie .NET Framework 1.1 haben. nur, wahrscheinlich die beste Ansatz ist, ein P zu verwenden/Invoke-Wrapper für 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

Sie können versuchen NAudio. Andernfalls können Sie eine native Bibliothek mit Interop verwenden.

+0

NAudio ist gegen 2.0 kompiliert, obwohl Sie möglicherweise finden, dass Sie die Bits, die Sie benötigen, gegen 1.1 neu kompilieren können. Es gibt einfachere Möglichkeiten (z. B. das Senden von MCI-Strings), wenn Sie einfach starten und anhalten müssen. –

1

Ich schlage vor, mit Directshow würde - die Render API extrem einfach ist. This Website scheint einen verwalteten Wrapper für DShow (Caveat Programmierer, ich habe es nicht verwendet) zu zeigen.

Bearbeiten, um hinzuzufügen: Persönlich würde ich bleiben weg von den MCI-APIs, wenn überhaupt möglich - sie sind extrem alte APIs und sie sind nicht besonders zuverlässig.

+0

Fair genug, ich benutze nicht mci APIs selbst. Aber obwohl der Aufruf der RenderFile-API selbst einfach ist, ist die schiere Menge an COM-Schnittstellen, die .NET-Wrapper erstellen müssen, bevor Sie beginnen können, für die meisten Entwickler entmutigend, besonders wenn Sie nur eine MP3-Datei abspielen möchten. Dennoch scheint der Link zum verwalteten Wrapper sehr hilfreich zu sein. +1 von mir. –