gpt4 book ai didi

c - 二进制模式下的 Windows 管道

转载 作者:可可西里 更新时间:2023-11-01 13:34:59 26 4
gpt4 key购买 nike

我在 Windows 中编写了一个程序,可以播放通过 stdin 发送给它的二进制音频,我称它为 aplay(类似于 linux 程序)。然后我写了一个单独的程序如下

FILE * f = popen("aplay.exe", "wb");
FILE * song = fopen("C:/Users/Ray/Dropbox/DJ Automica 2/Debug/raymonster 5.wav", "rb");
while(1)
{
byte buff[4096];
fread(buff, 4, 1024, song);
fwrite(buff, 4, 1024, f);
}

出于某种原因,管道似乎无法在二进制模式下工作,因为输出的音频一团糟。如果我更改我的 aplay 以在文本模式下单独打开 wave 文件,它听起来和我通过管道打开时一样,如果我在二进制模式下打开 wave 文件,它播放完美。有谁知道我该如何解决这个问题?

最佳答案

如果包含头文件

#include <fcntl.h>
#include <io.h>

你可以切换模式

_setmode(_fileno(stdin), _O_BINARY);

关于c - 二进制模式下的 Windows 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com