HD の wav ファイルに短いバッファを書き込めません。いくつかのチュートリアルに従いましたが、それらはすべて異なる方法で実行できます。とにかく、これは私が実装した方法ですが、何らかの理由で機能しません。の結果を印刷しようとするとoutfile
、0
が表示され、ディスクには何も書き込まれません。また、ファイル名の有無にかかわらず、さまざまなパスを試しました。
更新:パスをファイル名のみに変更するhello.wav
と (例: ではなく~/Documents/hello.wav
)、 を印刷するとoutfile
、0x2194000
.
void gilbertAnalysis::writeWAV(float * buffer, int bufferSize){
SF_INFO sfinfo ;
sfinfo.channels = 1;
sfinfo.samplerate = 44100;
sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
const char* path = "~/Documents/hello.wav";
SNDFILE * outfile = sf_open(path, SFM_WRITE, &sfinfo);
sf_count_t count = sf_write_float(outfile, &buffer[0], bufferSize) ;
sf_write_sync(outfile);
sf_close(outfile);
}