ЧТО Я ДЕЛАЮ Я пытаюсь получить аудиофайл (длиной до часа, например, подкаст), который я записал с помощью 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];