В настоящее время я использую Audio Queues на iPhone для записи и воспроизведения звука.
Что я хотел бы сделать, так это записать немного звука, позволить пользователю приостановить очередь записи и искать назад и вперед по звуку, чтобы выбрать позицию, с которой они могут снова начать запись.
Я преодолел проблему поиска, сделав размеры AudioQueueBuffer воспроизведения достаточно маленькими, чтобы обратный вызов очереди воспроизведения звука происходил со скоростью, которая позволяет пользователю использовать ползунок, чтобы слышать звук, когда они регулируют ползунок вперед и назад.
Я думаю, что могу добиться записи в новой позиции, установив параметр inStartingPacket функции AudioFileWritePackets, которую я вызываю из обратного вызова очереди аудиозаписи.
Проблема в том, что это только вставляет звук поверх ранее записанного звука. Длина файла, очевидно, не меняется, поэтому, если пользователь пойдет назад и запишет меньше звука, чем раньше, старый звук все равно останется после окончания вновь записанного звука.
Есть ли способ заставить AudioFile обрезаться в тот момент, когда пользователь начинает вставлять новый звук, есть ли другой способ удалить старый звук, начиная с позиции вставки, или есть ли лучший способ выполнить эту задачу? ?
Спасибо