У меня есть ситуация, когда я могу сохранить проход постобработки через аудио, беря некоторый манипулированный буфер с конца дорожки и записывая их в начало моего выходного файла.
Первоначально я думал, что смогу сделать это путем сброса указателя записи, используя ExtAudioFileSeek
, и собирался реализовать это, когда увидел эту строку в документе
Ensure that the file you are seeking in is open for reading only. This function’s behavior with files open for writing is undefined.
Теперь я знаю, что могу закрыть файл для записи, а затем снова открыть его, но процесс немного сложнее, чем этот. Частью манипуляций, которые я делаю, является чтение из буферов, которые находятся в файле, в который я пишу. Общий процесс выглядит следующим образом:
- Чтение буферов с конца прочитанного файла
- Чтение буферов с начала записи файла
- Обработка буферов
- Записать буферы обратно в начало файла записи, перезаписав буферы, которые я прочитал на шаге 2
По логике, это можно сделать за 1 проход, без проблем. Программно, как я могу достичь того же самого, не повреждая свои данные, не становясь менее эффективным (вопреки моей цели) или потенциально разрушая вселенную?