У меня очень нестандартный вопрос AVFoundation, и, как относительный новичок в мире iOS, я мог бы действительно использовать некоторые рекомендации от экспертов -
Я работаю над приложением, которое позволяетпользователь записывает биты аудио, которые мне нужно программно упорядочить, используя AVMutableComposition
.Вот в чём дело, помимо звуковой дорожки, я хочу захватывать и сохранять данные акселерометра и синхронизировать их со звуком.Обычно AVFoundation используется для известных типов мультимедиа, таких как фотографии, аудио и видео, но мне было интересно, возможно ли захватить что-то вроде данных акселерометра с помощью этой платформы.Это облегчит мне синхронизацию данных датчика с захваченным звуком, особенно при соединении частей с AVMutableComposition
.
Вот что мне нужно сделать:
Запись данных акселерометра в виде AVAsset/AVAssetTrack
, чтобы я мог вставить их в AVMutableComposition
Разрешить воспроизведение данных акселерометра в пользовательском представлении рядом со звукомбыло записано с
Сохраните AVMutableComposition
на диск, включая аудио и треки акселерометра.Было бы неплохо использовать стандартный контейнер, такой как Quicktime
. Для части 1 и 3 я рассматриваю использование классов AVAssetReader
, AVAssetReaderOutput
, AVAssetWriter
, AVAssetWriterInput
чтобы захватить с акселерометра, но без большого опыта с какао, я пытаюсь выяснить, что именно нужно расширить.На данный момент я думаю, что мне нужно создать подкласс AVAssetReaderOutput
и AVAssetWriterInput
и работать с CMSampleBuffers
, чтобы разрешить преобразование между необработанными данными акселерометра и AVAsset
.Я заметил, что большинство этих классов имеют только один закрытый член, ссылающийся на конкретную реализацию (то есть AVAssetReaderInternal
или AVAssetWriterInputInternal
).Кто-нибудь знает, является ли это общим шаблоном или что это значит для написания пользовательской реализации?
Я еще не задумывался над частью 2.В настоящее время я использую AVPlayer
для воспроизведения аудио, но я не уверен, как заставить его распределять выборочные данные из ресурса в мое пользовательское представление акселерометра.
Извинения за такой открытый вопрос - яПредположим, я ищу больше рекомендаций, чем конкретного решения.Есть ли какие-то интуитивные чувства относительно того, возможно ли это вообще с архитектурой AVFoundations?