2013-05-30 11 views
6

C'è una piccola documentazione preziosa su AVAudioMix e MTAudioProcessingTap, che consente l'elaborazione delle tracce audio (accesso PCM) delle risorse multimediali in AVFoundation (su iOS). Questo article e una breve menzione in una sessione WWDC 2012 è tutto ciò che ho trovato.Elaborazione audio AVFoundation utilizzando MPAudioProcessingTap di AVPlayer con URL remoti

Ho la configurazione descritta here che funziona per i file multimediali locali ma non sembra funzionare con i file remoti (ovvero gli URL di streaming HLS). L'unica indicazione che ciò è previsto è la nota alla fine di questo Technical Q&A:

AVAudioMix supporta solo risorse basate su file.

Qualcuno sa di più su questo? non c'è davvero alcun modo di accedere ai dati audio PCM quando la risorsa non è basata su file? Qualcuno può trovare la documentazione Apple relativa a MTAudioProcessingTap?

risposta

3

Ho notato un bel po 'di persone che chiedono informazioni su Internet e il consenso generale sembra essere che non sia possibile.

Si è scoperto che stavo cercando un progetto personale recente e ho stabilito che è effettivamente possibile far funzionare MTAudioProcessingTap con flussi remoti. Il trucco sta nel fatto che KVO controlla lo stato di AVPlayerItem; quando è pronto per giocare, puoi recuperare il sottostante AVAssetTrack e impostare AudioMix su di esso.

ho fatto un interessante resoconto di base con un po 'di codice (per lo più di lavoro) qui: http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/

Se già riusciti a gestire questa situazione, più potere a voi, ma ho pensato di rispondere a questa domanda in quanto si tratta su abbastanza rapidamente in Google per questa roba.

+0

non funziona su ios7% ( – abuharsky

+0

Quale flusso? Ho notato che i m3u8 hanno problemi basati su alcuni commenti sul mio sito. Non sono sicuro di quale sia l'accordo ma non riesco a vederlo al momento. : Ah, tu sei il tizio del mio sito - mi dispiace per la ripetizione! –

+0

@RyanMcGrath l'url è rotto potresti fornire un link mirror per il codice di esempio, sarebbe davvero molto utile, grazie –