Wie kann ich Audioclips in Echtzeit auf einen Server während der Aufzeichnung hochladen? Grundsätzlich ist meine Anforderung ein Audioclip als Chucks/Pakete während seiner Aufnahme hochzuladen. Ich habe bereits den Aufzeichnungsteil mit IQAudioRecorderController https://github.com/hackiftekhar/IQAudioRecorderController gemacht. Es zeichnet das Audio auf und speichert es in TemporaryDirectory.Upload von Audio-Clips in Echtzeit während der Aufnahme?
Ich wollte wissen, wie man Echtzeit hochlädt, ohne den Audioclip zu speichern.
Dies ist der Aufzeichnungsteil
//Unique recording URL
NSString *fileName = [[NSProcessInfo processInfo] globallyUniqueString];
_recordingFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.m4a",fileName]];
// Initiate and prepare the recorder
_audioRecorder = [[AVAudioRecorder alloc] initWithURL:[NSURL fileURLWithPath:_recordingFilePath] settings:recordSetting error:nil];
_audioRecorder.delegate = self;
_audioRecorder.meteringEnabled = YES;
// Recording start
- (void)recordingButtonAction:(UIBarButtonItem *)item
{
if (_isRecording == NO)
{
_isRecording = YES;
//UI Update
{
[self showNavigationButton:NO];
_recordButton.tintColor = _recordingTintColor;
_playButton.enabled = NO;
_trashButton.enabled = NO;
}
/*
Create the recorder
*/
if ([[NSFileManager defaultManager] fileExistsAtPath:_recordingFilePath])
{
[[NSFileManager defaultManager] removeItemAtPath:_recordingFilePath error:nil];
}
_oldSessionCategory = [[AVAudioSession sharedInstance] category];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];
[_audioRecorder prepareToRecord];
[_audioRecorder record];
}
else
{
_isRecording = NO;
//UI Update
{
[self showNavigationButton:YES];
_recordButton.tintColor = _normalTintColor;
_playButton.enabled = YES;
_trashButton.enabled = YES;
}
[_audioRecorder stop];
[[AVAudioSession sharedInstance] setCategory:_oldSessionCategory error:nil];
}
}
// Recording done
-(void)doneAction:(UIBarButtonItem*)item
{
if ([self.delegate respondsToSelector:@selector(audioRecorderController:didFinishWithAudioAtPath:)])
{
IQAudioRecorderController *controller = (IQAudioRecorderController*)[self navigationController];
[self.delegate audioRecorderController:controller didFinishWithAudioAtPath:_recordingFilePath];
}
[self dismissViewControllerAnimated:YES completion:nil];
}
Sie brauchen nicht 'ffmpeg', um Audio hochzuladen, und Sie haben wahrscheinlich Probleme mit der Lizenzierung einer App, die im App Store integriert ist. – damian
Möglicherweise gibt es andere Optionen für ffmpeg, aber wenn Sie sich um die Lizenzierung kümmern, gibt es kein Problem beim Senden eines Builds an den App Store, da ich eine App mit ffmpeg-Implementierung erfolgreich im App Store eingereicht habe. Sie müssen jedoch erwähnen, dass Sie sie verwenden Ihre App für Kreditzwecke. – Yuvrajsinh
ffmpeg ist lizenzierte LGPL. Die Bedingungen der LGPL sind nicht mit dem App Store vereinbar. Im Grunde verstößt man gegen die Lizenzbedingungen von ffmpeg. https://trac.ffmpeg.org/ticket/1229 – damian