如何用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() 函数指定声卡播放音乐的主要内容,如果未能解决你的问题,请参考以下文章