我有一個非常不標準AVFoundation的問題,作爲一個相對的新手到iOS的世界,我真的可以使用從專家那裏一些指導 -捕捉和AVFoundation
我工作在一個應用程序,讓用戶記錄的音頻位,我需要編程使用AVMutableComposition
安排。除了我想要捕獲和保存加速度計數據並使其與聲音同步的音軌之外,還有一件事情。通常,AVFoundation用於靜態照片,音頻和視頻等已知媒體類型,但我想知道使用此框架捕獲加速度計數據等是否可行。這將使我更容易將傳感器數據與捕獲的音頻同步,尤其是在將零件與AVMutableComposition
放在一起時。
以下是我需要完成:
記錄加速度數據作爲
AVAsset/AVAssetTrack
這樣我就可以將其插入AVMutableComposition
自定義視圖允許加速度計數據的回放旁邊音頻它記錄了與
保存
AVMutableComposition
到磁盤,包括音頻和加速軌道。這將是很好使用標準的容器如Quicktime
對於部分1 & 3我看着使用AVAssetReader
,AVAssetReaderOutput
,AVAssetWriter
,AVAssetWriterInput
類從加速度計,但沒有與可可我」太多的經驗來捕捉我試圖找出我需要擴展的東西。在這一點上,我想我需要繼承AVAssetReaderOutput
和AVAssetWriterInput
,並與CMSampleBuffers
一起工作,以允許原始加速計數據和AVAsset
之間的轉換。我觀察到大多數類只有一個私有成員引用的具體實現(即AVAssetReaderInternal
或AVAssetWriterInputInternal
)。有誰知道這是一種常見的模式還是它對於編寫自定義實現意味着什麼?
我還沒定部分2太多的思考。我目前使用的AVPlayer
播放音頻,但我不知道如何把它從資產樣本數據分發到我的自定義加速度計視圖。
道歉這樣一個開放式的問題 - 我想我正在尋找更比一個具體的解決方案的指導。對於AVFoundations架構是否完全有可能存在任何直覺?
通過回放加速度計數據,你是什麼意思......你將如何顯示數據? – Daniel
我將有一個自定義UIView,它將基於加速度計播放呈現某些內容。我想將音頻和加速計軌道作爲AVPlayerItem切換到AVPlayer,但我不確定AVPlayer '代表播放或發佈實際樣本。我想過用'addPeriodicTimeObserverForInterval:..'註冊播放通知,然後只是渲染內容,但我不確定現在蘋果是否用'AVPlayerLayer'來做。或者是? – weston