RT 図のとおり、図のコードではフレームの出力結果は100となっていますが、ループ本体は実行されていませんので、ループ本体が切れていないかよく確認してください。返品その他の発言、どこに問題があるのか聞いてもいいですか? (142 行目のコメントを解除すると、0 ~ 99 が正しく出力されます)
ループ本体が実行されます。 ログには 0 があり、初めて s=0 のときにループに入ったことを示しています。
0
プログラムがクラッシュしたため実行されなかったようです。 最後のエラーメッセージprocess excited after ... with return value 3221225477
process excited after ... with return value 3221225477
問題は 149 行目の fread(&block, 1, readBytesPer, fp); ですfread(&block, 1, readBytesPer, fp);作为buff的block,其长度只有一个struct BLOCK_16bit_2channel但是读取的长度readBytesPer = sizeof(struct BLOCK_16bit_2channel) * readSamplePer バフとして使用される block の長さは 1 つだけです struct BLOCK_16bit_2channel ただし、読み取り長 readBytesPer = sizeof(struct BLOCK_16bit_2channel) * readSamplePer、readSamplePer の値は 22050*10 です
fread(&block, 1, readBytesPer, fp);
block
struct BLOCK_16bit_2channel
= sizeof(struct BLOCK_16bit_2channel) * readSamplePer
struct BLOCK_16bit_2channel ただし、読み取り長 readBytesPer = sizeof(struct BLOCK_16bit_2channel) * readSamplePer、readSamplePer の値は 22050*10 です
まずは
ループ本体が実行されます。
ログには
0
があり、初めて s=0 のときにループに入ったことを示しています。それでは
プログラムがクラッシュしたため実行されなかったようです。
最後のエラーメッセージ
process excited after ... with return value 3221225477
クラッシュの原因
問題は 149 行目の
読み取り長は buff をはるかに超えており、メモリの読み取りと書き込みは範囲外になると、最終的なプログラムがクラッシュします。 🎜fread(&block, 1, readBytesPer, fp);
ですfread(&block, 1, readBytesPer, fp);
作为buff的
block
,其长度只有一个struct BLOCK_16bit_2channel
但是读取的长度readBytesPer
= sizeof(struct BLOCK_16bit_2channel) * readSamplePer
バフとして使用されるblock
の長さは 1 つだけですstruct BLOCK_16bit_2channel
ただし、読み取り長 readBytesPer
= sizeof(struct BLOCK_16bit_2channel) * readSamplePer
、readSamplePer の値は 22050*10 です