[英]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.