AVAudioRecorder record AAC / m4a
Estoy intentando grabar audio en el dispositivo usando AVAudioRecorder. Ese archivo se transmite a un servidor web y quiero reproducir ese archivo resultante en un navegador web.
He intentado varias combinaciones de configuraciones en el dispositivo ... nada parece codificar el archivo en el formato AAC correcto.
QuickTime dice que no sabe cómo reproducir este archivo.
Código de muestra
private void InitializeRecordingSession() {
string fileName = string.Format("{0}.m4a", Guid.NewGuid());
string tmpdir = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/audio";
if (!Directory.Exists(tmpdir))
Directory.CreateDirectory(tmpdir);
audioFilePath = Path.Combine(tmpdir, fileName);
Console.WriteLine("Audio File Path: " + audioFilePath);
var url = NSUrl.FromFilename(audioFilePath);
var settings = new AVAudioRecorderSettings() {
AudioFormat = AudioFormatType.MPEG4AAC,
SampleRate = 44100,
NumberChannels = 1,
AudioQuality = AVAudioQuality.High,
};
recorder = AVAudioRecorder.ToUrl(url, settings, out error);
//Set Recorder to Prepare To Record
recorder.PrepareToRecord();
}
Editar-Poner este código antes de la línea.
recorder = AVAudioRecorder.ToUrl(url, settings, out error);
Todo funciono
NSError error;
AVAudioSession audioSession = AVAudioSession.SharedInstance();
audioSession.SetCategory(AVAudioSession.CategoryRecord, out error);
audioSession.SetActive(true, out error);