Làm cách nào để tải clip âm thanh lên máy chủ trong khi đang ghi? Về cơ bản, yêu cầu của tôi là tải lên một đoạn âm thanh như là cặp/gói trong khi ghi âm. Tôi đã thực hiện phần ghi âm bằng cách sử dụng IQAudioRecorderController https://github.com/hackiftekhar/IQAudioRecorderController. Nó ghi lại âm thanh và lưu vào TemporaryDirectory.Tải lên clip âm thanh thời gian thực trong khi ghi âm?
Tôi muốn biết cách tải lên thời gian thực mà không lưu clip âm thanh.
Đây là phần ghi
//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];
}
Bạn không cần 'ffmpeg' để tải lên âm thanh và có thể bạn sẽ gặp phải sự cố cấp phép khi đặt ứng dụng được tích hợp sẵn trên App Store. – damian
Có thể có các tùy chọn khác cho ffmpeg, nhưng nếu bạn lo ngại về cấp phép thì không có vấn đề gì khi gửi bản dựng lên App Store vì tôi đã gửi thành công ứng dụng có triển khai ffmpeg tới App Store, nhưng bạn phải đề cập rằng bạn đang sử dụng nó ứng dụng của bạn cho mục đích tín dụng. – Yuvrajsinh
ffmpeg được cấp phép LGPL. Các điều khoản của LGPL không tương thích với App Store. Về cơ bản, bạn đang vi phạm các điều khoản cấp phép ffmpeg. https://trac.ffmpeg.org/ticket/1229 – damian