Próbuję nagrać dźwięk na urządzeniu za pomocą AVAudioRecorder. Ten plik jest przesyłany do serwera WWW i chcę odtworzyć wynikowy plik w przeglądarce internetowej.AVAudioRecorder rekord AAC/m4a
Próbowałem różnych kombinacji ustawień na urządzeniu ... nic nie wydaje się kodować pliku do właściwego formatu AAC .
QuickTime mówi, że nie wie, jak odtworzyć ten plik.
Przykładowy kod
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();
}
Edit -Przez wprowadzenie tego kodu przed linią
recorder = AVAudioRecorder.ToUrl(url, settings, out error);
wszystko działało.
NSError error;
AVAudioSession audioSession = AVAudioSession.SharedInstance();
audioSession.SetCategory(AVAudioSession.CategoryRecord, out error);
audioSession.SetActive(true, out error);
Zastanawiam się, czy znalazłeś rozwiązanie tego jak w obliczu tego samego problemu. – justinkoh