C# winmm.dll mp3 播放器快进方法?

Posted

技术标签:

【中文标题】C# winmm.dll mp3 播放器快进方法?【英文标题】:C# winmm.dll mp3 player Fast Forward method? 【发布时间】:2013-09-28 16:51:58 【问题描述】:

我正在使用 winmm.dll 制作一个基本的 mp3 播放器。 我的 FFW 方法有点问题。当我激活它时基本上没有任何反应。

你大概能猜出我想要做什么。

前 6 行注释掉,保存一个工作示例代码,运行我的循环时它对我不起作用,我做错了什么?

public void FFW()

    //string cmd1 = "set MyMp3 time format ms";
    //mciSendString(cmd1, null, 0, 0);
    //cmd1 = "seek MyMp3 to 8000";
    //mciSendString(cmd1, null, 0, 0);
    //cmd = "play MyMp3";
    //mciSendString(cmd, null, 0, 0);

    int ffw5sec = 5000;

    while (isPlaying == true)
    
        string cmd = "set MyMp3 time format ms";
        mciSendString(cmd, null, 0, 0);
        cmd = "seek MyMp3 to " + ffw5sec.ToString();
        mciSendString(cmd, null, 0, 0);
        cmd = "play MyMp3";
        mciSendString(cmd, null, 0, 0);

        ffw5sec += 5000;

    

【问题讨论】:

【参考方案1】:

哦,当我从循环中取出我的代码时,它开始工作了......

我的解决方案: 跳过功能不是最佳的,但至少它做了我想要的,我想我将来需要添加一个计时器,以计算更好的跳过。

int ffw5sec = 5000;

public void FFW()

    if(isPlaying == true)
    
        string cmd = "set MyMp3 time format ms";
        mciSendString(cmd, null, 0, 0);
        cmd = "seek MyMp3 to " + ffw5sec.ToString();
        mciSendString(cmd, null, 0, 0);
        cmd = "play MyMp3";
        mciSendString(cmd, null, 0, 0);

        ffw5sec += 5000;
    

【讨论】:

这实际上更像是一个评论而不是一个答案,因为它太模糊了。您是说您刚刚消除了 while 循环吗?请更清楚/更具体地说明您是如何解决问题的,然后将您的答案标记为已接受。

以上是关于C# winmm.dll mp3 播放器快进方法?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Phone 开发:使用 winmm.dll 播放内部 mp3 文件

带有 winmm3.dll 的音频播放/倒带功能

在 C# 中播放音频文件

使用 C# 开发 MP3 播放器

是否在每个 Windows 安装中都可以找到声音库 WINMM.DLL?

C#调用mciSendString播放MP3文件,大家看看这样有啥不对的,我老是播放不出来