Below is the tutorial on the Audio record and post the audio file on server
Reference tutorial : Here
Below is the coding.
Reference tutorial : Here
Below is the coding.
//
// ViewController.m
// RecordAudio
//
// Created by mac on 28/02/13.
// Copyright (c) 2013 mac. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import "ViewController.h"
#import "ASIFormDataRequest.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize recordButton,playButton,stopButton,progressview,uploadButton;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
playButton.enabled = NO;
stopButton.enabled = NO;
NSArray *dirPaths;
NSString *docsDir;
dirPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString *soundFilePath = [docsDir
stringByAppendingPathComponent:@"sound.caf"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
NSDictionary *recordSettings = [NSDictionary
dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:44100.0],
AVSampleRateKey,
nil];
NSError *error = nil;
audioRecorder = [[AVAudioRecorder alloc]
initWithURL:soundFileURL
settings:recordSettings
error:&error];
if (error)
{
NSLog(@"error: %@", [error localizedDescription]);
} else {
[audioRecorder prepareToRecord];
}
}
-(IBAction) recordAudio
{
NSLog(@"record audio");
if (!audioRecorder.recording)
{
playButton.enabled = NO;
stopButton.enabled = YES;
[audioRecorder record];
}
}
-(IBAction) playAudio
{
NSLog(@"audio url=%@",audioPlayer.url);
NSLog(@"play audio");
if (!audioRecorder.recording)
{
stopButton.enabled = YES;
recordButton.enabled = NO;
NSError *error;
audioPlayer = [[AVAudioPlayer alloc]
initWithContentsOfURL:audioRecorder.url
error:&error];
audioPlayer.delegate = self;
if (error)
NSLog(@"Error: %@",
[error localizedDescription]);
else
[audioPlayer play];
}
updateTimer = [NSTimer scheduledTimerWithTimeInterval:.01 target:self selector:@selector(updateCurrentTime) userInfo:audioPlayer repeats:YES];
//[progressview setProgress:audioPlayer.currentTime/audioPlayer.duration animated:YES];
}
- (void)updateCurrentTime
{
if ((int)audioPlayer.currentTime<=(int)audioPlayer.duration)
{
[progressview setProgress:audioPlayer.currentTime/audioPlayer.duration animated:YES];
}
else
{
[updateTimer invalidate];
}
}
-(IBAction) stop
{
NSLog(@"stop audio");
stopButton.enabled = NO;
playButton.enabled = YES;
recordButton.enabled = YES;
if (audioRecorder.recording)
{
[audioRecorder stop];
} else if (audioPlayer.playing) {
[audioPlayer stop];
}
}
-(IBAction)uploadAudio:(id)sender
{
NSLog(@"upload the audio file to the server");
NSURL *url = [NSURL URLWithString:@"http://192.168.0.100:8888/videoUploads/Upload.php"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
//[request setData:pVideoData forKey:@"file"];
[request addPostValue:@"sound.caf" forKey:@"name"];
request.numberOfTimesToRetryOnTimeout = 3;
[request setData:[NSData dataWithContentsOfURL:audioPlayer.url] withFileName:@"sound.caf" andContentType:@"multipart/form-data" forKey:@"userfile"];
//[request addFile:[audioPlayer.url absoluteString]forKey:@"userfile"];
[request setDelegate:self];
[request showAccurateProgress];
[request setRequestMethod:@"POST"];
//[request setShouldStreamPostDataFromDisk:YES];
[request setDidFinishSelector:@selector(postRequestSuccess:)];
[request setDidFailSelector:@selector(postRequestFailed:)];
[request startAsynchronous];
NSLog(@"responseStatusCode %i",[request responseStatusCode]);
NSLog(@"responseString %@",[request responseString]);
}
-(void)postRequestSuccess:(ASIHTTPRequest *)request
{
NSLog(@"vidoe uplodaded successfully");
NSLog(@"response Description-->%@",[request responseString]);
}
-(void)postRequestFailed:(ASIHTTPRequest *)request
{
NSLog(@"vidoe uplodaded failed");
NSError *error = [request error];
NSLog(@"Error Description-->%@",[error localizedDescription]);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Download the source code : Here