2015-02-17 69 views
0

新手iOS代码在这里,如果答案很简单,道歉。如何在Parse上存储iOS音频录音?

所以我建立了我的录音在viewDidLoad中

// Set the audio file 
NSArray *pathComponents = [NSArray arrayWithObjects: 
          [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject], 
          @"MyAudioMemo.m4a", 
          nil]; 
NSURL *outputFileURL = [NSURL fileURLWithPathComponents:pathComponents]; 

// Setup audio session 
AVAudioSession *session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; 

// Define the recorder setting 
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init]; 

[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey]; 
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey]; 

// Initiate and prepare the recorder 
recorder = [[AVAudioRecorder alloc] initWithURL:outputFileURL settings:recordSetting error:NULL]; 
recorder.delegate = self; 
recorder.meteringEnabled = YES; 
[recorder prepareToRecord]; 

我有一个栏按钮,记录新的音频文件:

// Stop the audio player before recording 
if (player.playing) { 
    [player stop]; 
} 

if (!recorder.recording) { 
    AVAudioSession *session = [AVAudioSession sharedInstance]; 
    [session setActive:YES error:nil]; 

    // Start recording 
    [recorder record]; 

} else { 

    // Pause recording 
    [recorder pause]; 
} 

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Stop" style:UIBarButtonItemStylePlain target:self 
                     action:@selector(stopTapped)]; 

然后开始成为一个停止按钮

[recorder stop]; 

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
[audioSession setActive:NO error:nil]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"New" style:UIBarButtonItemStylePlain target:self 
                     action:@selector(actionNew)]; 

我如何将它添加为PFFile并保存在Parse的字典中? 我已经阅读了很多Parse文档,但仍然没有真正掌握它。任何帮助非常感谢。

回答

0

看起来最简单的解决方案是在用户完成记录时从手机加载文件,而不是试图将记录直接保存到NSData对象。如果你想直视NSData物品,请查看apple docsstackoverflow question

首先,你想要得到的NSData实例的用户已完成录制后:

NSData *audioData = [[NSData alloc] initWithContentsOfFile:filePath]; 

创建一个新的PFFile:

PFFile *file = [PFFile fileWithName:@"resume.txt" data:data]; 

然后用你想要的省电方法保存。