libsndfile 및 libsamplerate를 사용하여 간단한 샘플러 변환기를 c로 작성했습니다. 난 그냥 libsamplerate의 src_simple 함수를 얻는 것 같다. 나는 무엇이든 시도한다. 나는 가능한 한 단순하게 내 코드를 다시 스트라이프하고 지금은 단지 동일한 샘플링 속도의 자동 오디오 파일을 출력합니다libsndfile 및 libsamplerate를 사용하는 오디오 샘플러 변환기. 함수 src_simple을 올바르게 사용하고 있는지 확실하지 않음
#include <stdio.h>
#include <sndfile.h>
#include <samplerate.h>
#define BUFFER_LEN 1024
#define MAX_CHANNELS 6
int main()
{
static double datain [BUFFER_LEN];
static double dataout [BUFFER_LEN];
SNDFILE *infile, *outfile;
SF_INFO sfinfo, sfinfo2 ;
int readcount ;
const char *infilename = "C:/Users/Oli/Desktop/MARTYTHM.wav" ;
const char *outfilename = "C:/Users/Oli/Desktop/Done.wav" ;
SRC_DATA src_data;
infile = sf_open (infilename, SFM_READ, &sfinfo);
outfile = sf_open (outfilename, SFM_WRITE, &sfinfo);
src_data.data_in = datain
src_data.input_frames = BUFFER_LEN;
src_data.data_out = dataout;
src_data.output_frames = BUFFER_LEN;
src_data.src_ratio = 0.5;
src_simple (&src_data, SRC_SINC_BEST_QUALITY, 1);
while ((readcount = sf_read_double (infile, datain, BUFFER_LEN)))
{
src_simple (&src_data, SRC_SINC_BEST_QUALITY, 1);
sf_write_double (outfile, dataout, readcount) ;
};
sf_close (infile);
sf_close (outfile);
sf_open ("C:/Users/Oli/Desktop/Done.wav", SFM_READ, &sfinfo2);
printf("%d", sfinfo2.samplerate);
return 0;
}
정말 저를 강조하기 시작합니다. 이 프로그램은 하나의 프로젝트이며 곧 시행 될 예정입니다. 시도하는 것이 무엇이든 실패로 끝나는 것처럼 그것은 매우 불안합니다. 아무도 나를 도울 수 있습니까?
왜 이전 질문을 삭제하고 다시 게시 했습니까? 이제 답변과 의견을 잃어 버렸습니다. –
죄송합니다 본질적으로 새로운 스레드를 만들어야하는 다른 프로그램이기 때문에 나는 생각했습니다. – OliD
정말 새로운 질문이 있으시면 언제든지 게시 하시겠지만 이전 답변은 삭제하지 마십시오. 응답이 다른 사람들에게 유용 할 수 있습니다. 그래도 원본 질문에 추가 정보를 추가하려는 경우 편집하십시오. –