Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Speex语音聊天:尝试解码时EXC_坏_访问崩溃_C_Exc Bad Access_Speex - Fatal编程技术网

Speex语音聊天:尝试解码时EXC_坏_访问崩溃

Speex语音聊天:尝试解码时EXC_坏_访问崩溃,c,exc-bad-access,speex,C,Exc Bad Access,Speex,我正在开发一个语音聊天,我使用speex压缩正在传输的数据。 但当我试图解码接收到的数据时,遇到了崩溃。 我使用以下代码压缩数据: Init方法(仅运行一次): 压缩方法: AudioBuffer sourceBuffer = bufferList->mBuffers[0]; speex_bits_reset(&bits); /*Encode the frame*/ speex_encode(state, sourceBuffer.mData, &bits); char c

我正在开发一个语音聊天,我使用speex压缩正在传输的数据。 但当我试图解码接收到的数据时,遇到了崩溃。 我使用以下代码压缩数据:

Init方法(仅运行一次):

压缩方法:

AudioBuffer sourceBuffer = bufferList->mBuffers[0];
speex_bits_reset(&bits);
/*Encode the frame*/
speex_encode(state, sourceBuffer.mData, &bits);
char cbits[200];
int nbBytes = speex_bits_write(&bits, cbits, 200);

NSData *result = [[NSData alloc] initWithBytes:cbits length:200];
NSLog(@"Lenght %d", [data length]);
speex_bits_reset(&bits);

/*Copy the data into the bit-stream struct*/
speex_bits_read_from(&bits, (void*)[data bytes], [data length]);

/*Decode the data*/
speex_decode(state, &bits, tempBuffer.mData);
解压缩方法:

AudioBuffer sourceBuffer = bufferList->mBuffers[0];
speex_bits_reset(&bits);
/*Encode the frame*/
speex_encode(state, sourceBuffer.mData, &bits);
char cbits[200];
int nbBytes = speex_bits_write(&bits, cbits, 200);

NSData *result = [[NSData alloc] initWithBytes:cbits length:200];
NSLog(@"Lenght %d", [data length]);
speex_bits_reset(&bits);

/*Copy the data into the bit-stream struct*/
speex_bits_read_from(&bits, (void*)[data bytes], [data length]);

/*Decode the data*/
speex_decode(state, &bits, tempBuffer.mData);
与之前相同的初始化


它在speex_解码时崩溃,没有错误。我检查了输入数据和输出数据的长度,它们是相同的。里面的字节是相同的。

Euh,那么您实际上是在将编码器状态传递给speex_decode()