小编Abh*_*gal的帖子

有没有办法在 swift/objective-c 中将 .wav 文件读取为 float/int 数组,并在处理样本后将其输出到扬声器或存储为 pcm?

我正在尝试构建一个 iOS 应用程序,我需要将 .wav 文件或麦克风输入读取为浮点数或 int 数组,以提供给 C 中现有的音频信号处理算法。 有没有像 matlab 中的 wavread 那样的简单方法?

void readAudio() {


NSString * name = @"Test";
NSString * source = [[NSBundle mainBundle] pathForResource:name ofType:@"caf"];
const char * cString = [source cStringUsingEncoding:NSASCIIStringEncoding];
CFStringRef str = CFStringCreateWithCString(NULL, cString, kCFStringEncodingMacRoman);
CFURLRef inputFileURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, str, kCFURLPOSIXPathStyle, false);

AudioFileID fileID;
OSStatus err = AudioFileOpenURL(inputFileURL, kAudioFileReadPermission, 0, &fileID);
CheckError(err, "AudioFileOpenURL");

ExtAudioFileRef fileRef;
err = ExtAudioFileOpenURL(inputFileURL, &fileRef);
CheckError(err, "ExtAudioFileOpenURL");


AudioStreamBasicDescription clientFormat;
memset(&clientFormat, 0, sizeof(clientFormat));
clientFormat.mFormatID          = kAudioFormatLinearPCM;
clientFormat.mFramesPerPacket   = 1; …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c core-audio ios swift

5
推荐指数
0
解决办法
1591
查看次数

标签 统计

core-audio ×1

ios ×1

objective-c ×1

swift ×1

xcode ×1