[英]Objective-C - BAD ACCESS EXC
我正在尝试创建一个使用统一音频流的项目。 为此,我正在开发一个插件。
在录制音频时没有问题,我通过websocket以base64字符串发送数据。 然后从xcode中捕获它并将其转换为NSDATA,这就是问题所在。 最初没有问题,但是过一会儿,Xcode向我显示了错误EXC_BAD_ACCESS,并且我无法继续将NSDATA复制到缓冲区中。
这是代码。
#import "AudioProcessor.h"
#pragma mark Playback callback
static OSStatus playbackCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData) {
AudioProcessor audioProcessor = (AudioProcessor) inRefCon;
// copy buffer to audio buffer which gets played after function return
if(ioData->mNumberBuffers > 0) {
AudioBuffer buffer = ioData->mBuffers[0];
// get the data from Unity
NSString *inputData = audioProcessor.getInputData;
if(inputData && ![inputData isKindOfClass:[NSNull class]])
{
//here it's the problem.
NSData *data = [[NSData alloc] initWithBase64EncodedString:inputData options:0];
memcpy(buffer.mData, data.bytes, data.length);
buffer.mDataByteSize = (int) data.length;
free(data);
}
return noErr;
}
#pragma mark controll stream
-(void)setInputData:(NSString *)datosValue
{
inputData = datosValue;
}
-(NSString*)getInputData
{
return inputData;
}
如果有人知道如何做到这一点,以致应用程序无法关闭,我将不胜感激。
首先,请遵循变量名以小写字母开头的命名约定。
发生错误是因为NSData
的实例是对象/指针,您必须添加*
NSData *data = [[NSData alloc] init....
此外,强烈建议例如使用点符号访问属性
data.bytes
data.length
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.