Захват и воспроизведение новых типов носителей с помощью AVFoundation

У меня очень нестандартный вопрос AVFoundation и как относительный новичок в мире iOS, я мог бы действительно использовать некоторые рекомендации от экспертов,

Я работаю над приложением, которое позволяет пользователю записывать биты аудио, которые мне нужно программно организовать с помощью AVMutableComposition . Вот что, помимо звуковой дорожки, я хочу захватить и сохранить данные акселерометра и синхронизировать ее со звуком. Обычно AVFoundation используется для известных типов носителей, таких как фотоснимки, аудио и видео, но мне было интересно, можно ли захватить что-то вроде данных акселерометра, используя эту структуру. Это значительно облегчило бы синхронизацию данных датчика с захваченным звуком, особенно при компоновке деталей вместе с AVMutableComposition .

Вот что мне нужно сделать:

  1. Запись данных акселерометра в качестве AVAsset/AVAssetTrack поэтому я могу вставить его в AVMutableComposition

  2. Разрешить воспроизведение данных акселерометра в пользовательском представлении наряду с аудио, которое было записано с помощью

  3. Сохраните AVMutableComposition на диске, включая дорожки аудио и акселерометра. Было бы неплохо использовать стандартный контейнер, например Quicktime

Для части 1 и 3 я рассматриваю использование AVAssetReader , AVAssetReaderOutput , AVAssetWriter , AVAssetWriterInput для захвата с акселерометра, но без особого опыта работы с Cocoa. Я пытаюсь выяснить, что именно мне нужно расширить. В этот момент я думаю, что мне нужно подклассы AVAssetReaderOutput и AVAssetWriterInput и работать с CMSampleBuffers чтобы разрешить преобразование между необработанными данными акселерометра и AVAsset . Я заметил, что большинство из этих классов имеют только один частный член, ссылающийся на конкретную реализацию (то есть AVAssetReaderInternal или AVAssetWriterInputInternal ). Кто-нибудь знает, является ли это общей моделью или что она означает для написания пользовательской реализации?

Я еще не очень подробно рассмотрел часть 2. В настоящее время я использую AVPlayer для воспроизведения звука, но я не уверен, как его распределить образцы данных из актива в мой пользовательский вид акселерометра.

Извиняюсь за такой открытый вопрос – я полагаю, что я ищу больше для руководства, чем для конкретного решения. Любые чувства в отношении того, насколько это возможно с архитектурой AVFoundations?

One Solution collect form web for “Захват и воспроизведение новых типов носителей с помощью AVFoundation”

Я бы использовал NSmutableArray и сохранил данные акселератора плюс временной код. Поэтому, когда вы играете, вы можете получить время от видеопроигрывателя и использовать его для поиска данных акселератора в массиве. Поскольку данные хранятся в виде временной строки, вам не нужно искать весь массив. Достаточно сделать шаг вперед в массиве и проверить, совпадают ли данные времени.

  • Как определить тайм-аут достижимости на ios
  • Приложение iOS падает при возобновлении
  • Экспорт UIImages в MP4
  • Первый кадр видео с использованием AVFoundation
  • iOS `UIView` перестает отвечать на распознаватель жестов, когда его альфа составляет 0?
  • iOS 6 поддерживается проблема с внешним интерфейсом
  • iOS: напрямую изменить CMSampleBufferRef?
  • Безопасность резьбы UIImage
  • Категории в Objective-C не работают
  • Отправка пароля на сервер
  • Пользовательский UITableViewRowAnimation или продолжительность
  • Interesting Posts

    UITableView reloadData ничего не делает (UITableView не ноль)

    NSUrlConnection и cURl

    Задержка при обновлении пользовательского интерфейса

    iOS push-уведомления кошмары, Идентификаторы приложений и сертификаты приложений

    iOS UIButton снаружи Рама не запускает событие touchinside

    Соображения производительности при удалении управляемых объектов с использованием правила Cascade в основных данных

    Подход для чтения произвольного количества бит в быстром

    Программно переключаемые контроллеры просмотра MVC – iOS

    reloadData не работает для UICollectionView в iOS7

    Как обновить DetailView

    iOS startMonitoringForRegion не работал в спящем режиме (черный экран)

    Невозможно добавить новое приложение для iOS, создать пакет в iTunes connect

    iOS AudioUnits проходят через

    Twitter SLRequest performRequestWithHandler – Не удалось подготовить URL-запрос

    Как получить тип безопасности подключенной в настоящее время сети Wi-Fi, используя либо BSSID, либо SSID?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.