2011-10-28 16 views
5

私はバイナリオーディオをstdin経由で送信するプログラムをWindowsで作成しました。私はそれをaplay(linuxプログラムのようなもの)と呼びました。オーディオがすべて台無しに出ているので、いくつかの理由バイナリモードのWindowsパイプ

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); 
} 

を次のように私はその後、別々のプログラムを書いて、パイプは、バイナリモードで動作していないようです。テキストモードでwaveファイルを開くように私のアピールを変更した場合、それはバイナリモードでwaveファイルを開くと完全に再生されます。誰も私がこれをどのように修正できるか知っていますか?

答えて

4

あなたは

_setmode(_fileno(stdin), _O_BINARY); 
でモードを切り替えることができます

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

ヘッダファイルが含まれている場合

関連する問題