Как отправить аудиопоток с помощью UDP-сокета в ios sdk

Как вы отправляете данные аудио и видеопотока через сокеты UDP. Кроме того, как вы передаете аудиофайл с сервера.

Я использую этот проект: https://github.com/robbiehanson/CocoaAsyncSocket

но некоторые данные не отправляют, как решить эту проблему

отправить код nsdata есть:

NSString *host = addrField.text; if ([host length] == 0) { [self logError:@"Address required"]; return; } int port = [portField.text intValue]; if (port <= 0 || port > 65535) { [self logError:@"Valid port required"]; return; } NSString *msg = [[NSBundle mainBundle] pathForResource:@"11" ofType:@"mp4"]; if ([msg length] == 0) { [self logError:@"Message required"]; return; } NSData* datafile =[[NSData alloc]init]; datafile= [NSData dataWithContentsOfFile:msg]; NSUInteger length = [datafile length]; // total size of data NSLog(@"real data len >>%lu",(unsigned long)length); NSUInteger chunkSize =9000; // divide data into 10 mb NSUInteger offset = 0; countfordatbunch=0; do { // get the chunk location NSUInteger thisChunkSize = length - offset > chunkSize ? chunkSize : length - offset; // get the chunk data = [NSData dataWithBytesNoCopy:(char *)[datafile bytes] + offset length:thisChunkSize freeWhenDone:NO]; [outputStream write:[data bytes] maxLength:[data length]]; udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()]; //omitted error checking [udpSocket enableBroadcast:YES error:nil]; [udpSocket bindToPort:port error:nil]; [udpSocket joinMulticastGroup:host error:nil]; [udpSocket beginReceiving:nil]; [udpSocket sendData:data toHost:host port:port withTimeout:10 tag:tag]; offset += thisChunkSize; countfordatbunch++; } while (offset < length); msg=[NSString stringWithFormat:@"%d",countfordatbunch]; data = [msg dataUsingEncoding:NSUTF8StringEncoding]; //omitted error checking [udpSocket enableBroadcast:YES error:nil]; [udpSocket bindToPort:port error:nil]; [udpSocket joinMulticastGroup:host error:nil]; [udpSocket beginReceiving:nil]; // [udpSocket receiveWithTimeout:10 tag:1]; [udpSocket sendData:data toHost:host port:port withTimeout:10 tag:tag]; NSLog(@"countfordatbunch >>>%d",countfordatbunch); 

и получите там код:

 - (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(id)filterContext { [arraySoundData addObject:data]; NSLog(@"arraySoundData>>%d",arraySoundData.count); msg1 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; int count=[msg1 integerValue]; NSLog(@"msg_count >>%d",count); if (((arraySoundData.count==count+1)&&arraySoundData.count!=1)||arraySoundData.count==count) { [self logMessage:FORMAT(@"RECV: %@", @"message send")]; sound = [NSMutableData data]; int i; for (i=0; i<[arraySoundData count]; i++) { NSData *soundPacket = [arraySoundData objectAtIndex:i]; [sound appendData:soundPacket]; } NSLog(@"%@",sound); NSUInteger length1 = [sound length]; NSLog(@"data len >>%lu",(unsigned long)length1); NSFileManager *fileManager =[NSFileManager defaultManager]; NSString *fileName = @"file.mp4"; NSLog(@"%@",fileName); NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:fileName]; NSLog(@"%@",dataPath); BOOL filecreationSuccess = [fileManager createFileAtPath:dataPath contents:sound attributes:nil]; if(filecreationSuccess == NO) { NSLog(@"Failed to create the html file"); } NSURL *movieUrl = [NSURL fileURLWithPath:dataPath]; moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:movieUrl]; NSLog(@"%@",moviePlayerController); [self.view addSubview:moviePlayerController.view]; //moviePlayerController.fullscreen = YES; moviePlayerController.view.frame = CGRectMake(150, 250, 150, 150); moviePlayerController.scalingMode = MPMovieScalingModeAspectFit; moviePlayerController.controlStyle=MPMovieControlStyleDefault; [moviePlayerController play]; [arraySoundData removeAllObjects]; //msg1=@""; NSLog(@"%lu",(unsigned long)arraySoundData.count); [self.modalViewController.view removeFromSuperview]; } } 

  • В App Purchase (IAP) простые вопросы (у меня есть проблема)
  • Данные каталога документа приложения удалены при обновлении ios от 7 до ios 8?
  • (lldb) Ошибка времени выполнения на Xcode версии 6.1
  • Захват AVCapture и получение фреймбуфера с частотой 60 кадров в секунду в iOS 7
  • Почему строка не равна тому, что хранится?
  • Мы намерены поддерживать iPhone 5, нам нужно обновить Xcode до версии 4.5 и использовать iOS 6 SDK?
  • Разделитель между навигационной панелью и представлением - iOS 7
  • iOS 6 - (BOOL) shouldAutorotate не получает вызов для контроллеров навигации, толкаемых viewControllers
  • Вызов pushViewController после того, как currentViewController не работает
  • WCSession на Apple Watch не работает должным образом
  • iPhone - 3 множественных обнаружения UIGestureRecognizer
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.