【发布时间】:2009-07-04 07:07:06
【问题描述】:
我编写了一个通过 appln 播放 .wav 的代码。现在我想通过我的 appln 播放 mp3 文件 任何人都可以帮助解决这个问题。 这里我只有.net framework 1.1
【问题讨论】:
-
我误读了这个问题;错过了 mp3 部分...
我编写了一个通过 appln 播放 .wav 的代码。现在我想通过我的 appln 播放 mp3 文件 任何人都可以帮助解决这个问题。 这里我只有.net framework 1.1
【问题讨论】:
如果您有 .NET 框架 1.1。只是,您最好的方法可能是对 mciSendCommand 使用 P/Invoke 包装器
[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";
}
【讨论】:
你可以试试NAudio。否则,您可以考虑使用使用 Interop 的本机库。
【讨论】:
我建议使用 DirectShow - RenderFile API 非常简单。 This 站点似乎显示了 DShow 的托管包装器(警告程序员,我没有使用它)。
编辑补充:如果可能的话,我个人会远离 MCI API - 它们是非常旧的 API,而且不是特别可靠。
【讨论】: