【发布时间】:2015-10-27 12:45:38
【问题描述】:
我有一个 flac 文件。我想通过“flac -dc”命令对其进行解码,读取命令输出的 wav 流,将音量降低一半并输出信号。这是我的实际代码:
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] ) {
FILE *stream;
int16_t normal, decreased;
stream = popen( "/usr/bin/flac -dc 1.flac", "r" );
while( feof( stream ) == 0 ) {
normal = fgetc( stream );
decreased = (int16_t) (normal * 0.5f);
printf( "%c", decreased );
}
pclose( stream );
return 0;
}
但是当我运行这个程序并通过这个命令将它的输出重定向到音频系统时:
./myprogram | aplay -f dc
声音严重失真。如果我尝试通过“mpg123 -s”命令解码 mp3 文件,情况不会改变。怎么了?
【问题讨论】: