代码拉取完成,页面将自动刷新
同步操作将从 黄老邪/AVDataProcess 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
//
//本程序中的函数可以将PCM16LE双声道数据中左声道和右声道的数据分离成两个文件。
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int pcm16le_split(const char *file)
{
if (file == NULL) {
printf("文件路径为空!\n");
return 0;
}
FILE *fp = fopen(file, "rb+");
if (fp == NULL) {
printf("文件打开失败!\n");
return 0;
}
FILE *fp_l = fopen("./output/output_l.pcm", "wb+");
if (fp_l == NULL) {
printf("左声道文件打开或创建失败!\n");
return 0;
}
FILE *fp_r = fopen("./output/output_r.pcm", "wb+");
if (fp_r == NULL) {
printf("右声道文件打开或创建失败!\n");
return 0;
}
unsigned char buf[4] = {0};
//PCM16LE双声道数据中左声道和右声道的采样值是间隔存储的。
//每个采样值占用2Byte空间。
while (!feof(fp)) {
fread(buf, 1, 4, fp);
//保存左声道的数据,一个采样值16位,两个字节
fwrite(buf, 1, 2, fp_l);
//保存右声道的数据
fwrite(buf+2, 1, 2, fp_r);
}
fclose(fp);
fclose(fp_l);
fclose(fp_r);
return 1;
}
int main()
{
char file[] = "./mediadata/NocturneNo2inEflat_44.1k_s16le.pcm";
if (pcm16le_split(file)) {
printf("操作成功!!!\n");
} else {
printf("操作失败!!!\n");
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。