OSX / iOS:将.WAV读入浮点缓冲区

时间:2013-06-07 21:37:27

标签: ios macos buffer core-audio wav

我在磁盘上有一个单声道.WAV。我希望我的OSX(以及后来的iOS)应用程序将其读入浮点缓冲区。

实现这一目标的最简单方法是什么?

2 个答案:

答案 0 :(得分:2)

解决方案是使用ExtAudioFile()

我发现它读得最优秀Core-Audio bible

答案 1 :(得分:1)

libsndfile方式:)

   SF_INFO sfinfo;
   SNDFILE *sf;
   float *buf;
   int err_code;

   sfinfo.format = 0;
   sf = sf_open("/meow.wav", SFM_READ, &sfinfo);
   err_code = sf_error(sf);
   if (err_code == SF_ERR_NO_ERROR) {
      buf = malloc(sfinfo.frames * sfinfo.channels * sizeof(float));
      sf_read(sf, buf, sfinfo.frames * sfinfo.channels);
      printf("Done!\n");
   } else {
      printf("%s\n", sf_error_number(err_code));
   }