КАКВО ПРАВЯ Опитвам се да получа аудио файл (може да е дълъг до един час, напр. подкаст), който съм записал с AVAudioRecorder, за да бъде качен в нашия бекенд. В допълнение към качването на сървъра, то трябва да може да бъде „Поставено на пауза“ и „Възобновено“, ако потребителят избере. Поради това вярвам, че трябва да използвам dataWithBytesNoCopy:buffer
в класа NSData
, за да постигна това.
КЪДЕ СЪМ Със сигурност знам, че мога да получа данните с помощта на предаденото свойство self.mediaURL
:
if (self.mediaURL) {
NSData *audioData = [NSData dataWithContentsOfURL:self.mediaURL];
if (audioData) {
[payloadDic setObject:audioData forKey:@"audioData"];
}
}
Това обаче няма да ми даде желаната функционалност. Опитвам се да следя качените байтове, за да мога да възобновя, ако потребителят спре.
ВЪПРОС Как мога да използвам предоставения self.mediaURL
, за да мога да извлека файла и да мога да изчисля дължината на байта като този пример?
Byte *buffer = (Byte*)malloc((long)audioFile.size);
NSUInteger buffered =[rep getBytes:buffer fromOffset:0.0 length:(long)rep.size error:nil];
NSMutableData *body = [[NSMutableData alloc] init];
body = [NSMutableData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];