0

我正在尝试使用令人惊叹的音频引擎录制音频,然后将其上传到 Parse。

关于 stackoverflow 有一个很好的问题,它似乎在这里解决了这个问题,但我在 m4a 格式化方面遇到了问题,这意味着这个答案对我没有帮助。

这就是我录制音频的方式:

self.recorder = [[AERecorder alloc] initWithAudioController:_audioController];

NSArray * documentsFolders = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * path = [documentsFolders[0] stringByAppendingPathComponent:@"Recording.aiff"];

然后我如何将它保存到 Parse:

NSArray * documentsFolders = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * path = [documentsFolders[0] stringByAppendingPathComponent:@"Recording.aiff"];

NSData * audioData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:path]];

PFObject * testObject = [PFObject objectWithClassName:@"TestObject"];

PFFile * audioFile = [PFFile fileWithName:@"audio.aiff" data:audioData];

testObject[@"audioFile"] = audioFile;
[testObject saveInBackground];

这一切正常,音频已正确上传和保存。

问题是我以aiff格式保存音频,这意味着流式传输和上传需要更长的时间,因为它是一个更大的文件。我真的很想以 m4a 格式保存音频,因为速度比质量更重要。

我发现当我突然将 .aiff 更改为 .m4a 时它不起作用。

  • 当我单击 Parse 中的数据时,在我听到音频之前,现在 url 无法播放
  • 重新加载它并在应用程序上播放它不会像以前那样播放它。

我做错了什么或忽略了什么?我觉得这应该是一个快速简单的更改,因此任何建议将不胜感激。

4

1 回答 1

1

您可以尝试告诉 AERecorder 使用 M4A 格式,看看是否有帮助(除了更改文件名。)

[self.recorder prepareRecordingToFileAtPath:path fileType:kAudioFileM4AType error:nil];

或者在 beginRecording 中设置该文件类型。

http://theamazingaudioengine.com/doc/interface_a_e_recorder.html#pub-methods

于 2014-07-16T08:29:07.280 回答