标签: mcisendstring

使用winmm.dll mciSendString可以实现最低音频设置?

我正在尝试使用C#和winmm.dll将此录制设置为可能的最低设置.我已经设置了下面的设置,但我没有听到任何差异.有谁知道我错过了什么?

我正在努力获得最低的音频设置.就像你从对讲机里听到的那样.

我对采样率所做的任何更改似乎都没有生效.

谢谢,

record("open new Type waveaudio Alias recsound", "", 0, 0);
record("set recsound time format ms bitspersample 8 samplespersec 8000 channels 1", "", 0, 0);
record("record recsound", "", 0, 0);
Run Code Online (Sandbox Code Playgroud)

c# microphone wav winmm mcisendstring

5
推荐指数
1
解决办法
679
查看次数

mciSendString不会暂停从线程播放的声音

最近我已经要求一个类似这个问题的解决方案:

有没有办法暂停/停止播放带有"等待"选项的mcisendstring的mp3文件?

我想在我的音频播放器中实现一个功能,允许人们连续播放声音,而滑块根据曲目运行的当前秒数移动,并且还具有在当前曲目之后转到下一曲目的功能.过度

之后(正如您可以在链接中阅读)尝试使用它

mciSendString("play mp3 wait", NULL, 0, NULL);
Run Code Online (Sandbox Code Playgroud)

由于轨道在完成之前无法暂停或停止的问题而失败,我现在正试图以另一种方式实现它.目前,当我开始播放曲目时,我也会启动另一个线程,即启动计数器.计数器以秒为单位获得轨道的长度,并且正在倒计时,还提供用于暂停/恢复计数器的互斥锁.为了阻止我的MusicCycle简单地循环不受控制,我加入了线程,因此等待终止.

void Music::MusicCycle(std::wstring trackPath)
{
    while (true)
    {
        OpenMP3(trackPath);
        mciSendString("play mp3", NULL, 0, NULL);

        m_counterThread = boost::thread(boost::bind(&Counter::StartCount, m_counter, <length of track in seconds>));
        m_counterThread.join();

        //... Get new track here
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,整个方法也是在一个线程中创建的:

m_cycleThread = boost::thread(boost::bind(&Music::MusicCycle, this, trackPath));
Run Code Online (Sandbox Code Playgroud)

由MusicCycle函数启动的线程如下所示:

void Counter::StartCount(int seconds)
{
    boost::mutex::scoped_lock lock(m_mutex);

    for (int i = 0; i < seconds; i++)
    {
        while (m_counterLock)
        {
            m_condVar.wait(lock);
        }

        boost::this_thread::sleep(boost::posix_time::seconds(1));
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,我添加了另一个功能来使用我的Pause/Resume方法锁定/解锁互斥锁,这也调用相应的mciSendString函数

mciSendString("resume mp3", NULL, 0, NULL);

mciSendString("pause mp3", …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-thread mcisendstring

5
推荐指数
1
解决办法
488
查看次数

标签 统计

mcisendstring ×2

boost ×1

boost-thread ×1

c# ×1

c++ ×1

microphone ×1

wav ×1

winmm ×1