我在网站上找到了这门课程:
class MP3Handler
{
private string _command;
private bool isOpen;
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
public void Close()
{
_command = "close MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = false;
}
public void Open(string sFileName)
{
_command = "open \"" + sFileName + "\" type mpegvideo alias MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isOpen = true;
}
public void Play(bool loop)
{
if (isOpen)
{
_command = "play MediaFile";
if (loop)
_command += " REPEAT";
mciSendString(_command, null, 0, IntPtr.Zero);
}
}
}
是否有停止和播放的方法。我想知道是否有人熟悉winmm.dll库。如何在播放时暂停播放歌曲,然后从暂停播放的位置继续播放?
答案 0 :(得分:2)
This CodeProject文章包含一个类,它可以处理winmm.dll库的功能,包括暂停,可能对此以及将来有所帮助。
然而,基本代码是:
_command = "pause MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
答案 1 :(得分:0)
以下是所有Multimedia Command Strings。
暂停命令暂停播放或 记录。大多数司机保留了 当前的位置,并最终恢复 播放或录制此内容 位置。 CD音频,数字视频, MIDI音序器,录像机,视频盘和 波形音频设备识别这一点 命令。
恢复命令继续播放 或者在已经存在的设备上录制 暂停使用pause命令暂停。 数字视频,VCR和波形音频 设备识别此命令。 虽然CD音频,MIDI音序器和 视频设备也认识到了这一点 命令,MCICDA,MCISEQ和 MCIPIONR设备驱动程序不支持 它
所以我猜你会:
bool isPaused = false;
public void Pause() {
if (isOpen && !isPaused) {
_command = "pause MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isPaused = true;
}
}
public void Resume() {
if (isOpen && isPaused) {
_command = "resume MediaFile";
mciSendString(_command, null, 0, IntPtr.Zero);
isPaused = false;
}
}