如何用mciSendCommand()/mciSendString() 函数指定声卡播放音乐

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用mciSendCommand()/mciSendString() 函数指定声卡播放音乐相关的知识,希望对你有一定的参考价值。

用mciSendCommand()/mciSendString() 高层音频函数播放音乐时,系统会用默认的声卡播放。当系统装有多快声卡时,我想给将音乐播放给指定的声卡(不是系统默认的声卡)要怎么做?例如:我系统中装有两块声卡,分别为“声卡1”和“声卡2”,系统默认使用的声卡是“声卡1”,但我希望我能从“声卡2”中播放音乐。

参考技术A 你好
调整一下就可以了
多试试

如何用 XOR 解密右移消息?

【中文标题】如何用 XOR 解密右移消息?【英文标题】:How to decrypt a right shifted message with XOR? 【发布时间】:2021-12-29 12:57:11 【问题描述】:

我有一条消息 m 用代码加密 c = m xor [m>>1] (m>>x 表示我将它移动 x 位 - 例如 1000>>1 = 0100)

我需要解密这条消息。

我尝试过类似 6 的代码,但它不适用于 1 位移位:

int main() 
    uint32_t n = 0xff;
    for (uint32_t m = 0; m < n; ++m) 
         printf("input: %X \n", m); 
        uint32_t c = m ^ (m >> 6);// c = encrypted value
        printf("encrypted value: %X \n", m);
        uint32_t x = c;
        x ^= ((x &       0x3F) >> 6);
        x ^= ((x &      0xFC0) >> 6);
        x ^= ((x &    0x3F000) >> 6);
        x ^= ((x &   0xFC0000) >> 6);
        x ^= ((x & 0x3F000000) >> 6);
        if (m != x) 
            printf("Mismatch: %X > %X > %X\n", m, c, x); // should never happen
            break;
        
    

【问题讨论】:

【参考方案1】:

可以像这样撤消右移 1 位的异或移位:

x ^= x >> 1;
x ^= x >> 2;
x ^= x >> 4;
x ^= x >> 8;
x ^= x >> 16;

可以像您展示的那样撤消右移 6 的异或移位,但也可以像这样,更短:

x ^= (x >> 6) ^ (x >> 12);
x ^= x >> 18;

【讨论】:

以上是关于如何用mciSendCommand()/mciSendString() 函数指定声卡播放音乐的主要内容,如果未能解决你的问题,请参考以下文章

在PL/SQL中如何用SQL语句查询数据库中所有表的数据数量?

如何用最少的指令将两个四元数相乘?

如何用c/c++编写和调用dll动态链接库。

如何用unity实现全屏/全屏窗口化/窗口化三种模式的切换

请问如何用Java编写一个汽车类Car

Linux系统中如何用shell脚步判断是不是telnet成功。