Hi, All
I'm trying to use the NSOutputStream class to transfer some audio file through Bonjour service which is implemented on the iPhone simulator.I try the following code with some small text files. It works well. But there are always some error occurs() when I try to send the bigger ones -- some audio file.
Any suggestions .... ? Thanks !
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *sendFile = [documentsDirectory stringByAppendingPathComponent: @"test1.caf"];
NSData *myData = [[[NSData alloc] initWithContentsOfFile:sendFile] autorelease];
uint8_t *readBytes = (uint8_t *)[myData bytes];
NSUInteger byteIndex = 0;
int myData_len = [myData length];
while (_outStream && [_outStream hasSpaceAvailable]) {
readBytes += byteIndex;
unsigned int len = ((myData_len - byteIndex >= 1024) ? 1024 : (myData_len-byteIndex));
uint8_t buf[len];
(void)memcpy(buf, readBytes, len);
len = [_outStream write
const uint8_t *)buf maxLength:len];
byteIndex += len;
}
Emma
I'm trying to use the NSOutputStream class to transfer some audio file through Bonjour service which is implemented on the iPhone simulator.I try the following code with some small text files. It works well. But there are always some error occurs() when I try to send the bigger ones -- some audio file.
Any suggestions .... ? Thanks !
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *sendFile = [documentsDirectory stringByAppendingPathComponent: @"test1.caf"];
NSData *myData = [[[NSData alloc] initWithContentsOfFile:sendFile] autorelease];
uint8_t *readBytes = (uint8_t *)[myData bytes];
NSUInteger byteIndex = 0;
int myData_len = [myData length];
while (_outStream && [_outStream hasSpaceAvailable]) {
readBytes += byteIndex;
unsigned int len = ((myData_len - byteIndex >= 1024) ? 1024 : (myData_len-byteIndex));
uint8_t buf[len];
(void)memcpy(buf, readBytes, len);
len = [_outStream write
byteIndex += len;
}
Emma