xcode 프로젝트에 LibFlac을 추가했습니다. 그런 다음 프로젝트의 Libflac에서 decode/main.c를 추가했습니다. 내가 infile.flac을 통과하고 프로젝트의 실행 파일을 실행하지만 오류를wac에서 flac으로 인코딩/인코딩하는 중 오류가 발생했습니다.
디코딩 다음주고있다 : FAILED 상태 : FLAC__STREAM_DECODER_END_OF_STREAM는
여기 t
은 main.c에
int main(int argc, char *argv[])
{
FLAC__bool ok = true;
FLAC__StreamDecoder *decoder = 0;
FLAC__StreamDecoderInitStatus init_status;
FILE *fout;
const char *infile = "infile.flac";
const char *outfile = "outfile.wav";
/*
if(argc != 3) {
fprintf(stderr, "usage: %s infile.flac outfile.wav\n", argv[0]);
return 1;
}
*/
if((fout = fopen("infile.flac", "wb")) == NULL) {
fprintf(stderr, "ERROR: opening %s for output\n", argv[2]);
return 1;
}
if((decoder = FLAC__stream_decoder_new()) == NULL) {
fprintf(stderr, "ERROR: allocating decoder\n");
fclose(fout);
return 1;
}
(void)FLAC__stream_decoder_set_md5_checking(decoder, true);
init_status = FLAC__stream_decoder_init_file(decoder, infile, write_callback, metadata_callback, error_callback, /*client_data=*/fout);
if(init_status != FLAC__STREAM_DECODER_INIT_STATUS_OK) {
fprintf(stderr, "ERROR: initializing decoder: %s\n", FLAC__StreamDecoderInitStatusString[init_status]);
ok = false;
}
if(ok) {
ok = FLAC__stream_decoder_process_until_end_of_stream(decoder);
fprintf(stderr, "decoding: %s\n", ok? "succeeded" : "FAILED");
fprintf(stderr, " state: %s\n", FLAC__StreamDecoderStateString[FLAC__stream_decoder_get_state(decoder)]);
}
FLAC__stream_decoder_delete(decoder);
fclose(fout);
return 0;
}
입니다 logou
도와주세요. 왜이 오류가 발생합니까?
FLAC 파일이 맞습니까? 또한 메타 데이터를 먼저 처리하려면'FLAC__stream_decoder_process_until_end_of_metadata()'를 호출해야 할 수도 있습니다. – stativ
ok .. 답장을 보내 주셔서 감사합니다. flac 파일을 확인하고이 함수를 호출합니다. – iProgrammer
@stativ Hello R u there? – iProgrammer