Chiederò questo a rischio di essere troppo vago o di chiedere troppe cose in una domanda, ma in realtà sto solo cercando un punto nella giusta direzione.iOS registra l'audio e disegna forme d'onda come Memo vocali
Nella mia app, desidero registrare l'audio, mostrare una forma d'onda durante la registrazione e scorrere la forma d'onda per registrare e riprodurre da un momento specifico. Ad esempio, se ho 3 minuti di audio, dovrei essere in grado di tornare alle 2:00 e avviare la registrazione da lì per correggere un errore.
In Memo vocali, questo viene eseguito istantaneamente, senza alcun ritardo o tempo di caricamento. Sto cercando di capire come l'ha fatto, se qualcuno ha la minima idea.
Quello che ho provato:
EZAudio - Questa libreria è grande, ma non fa quello che voglio. Non è possibile scorrere la forma d'onda. Elimina i dati della forma d'onda all'inizio e inizia ad aggiungerli alla fine quando raggiunge una certa lunghezza.
SCWaveformView - Questa forma d'onda è piacevole, ma utilizza le immagini. Una volta che la forma d'onda è troppo lunga, inserirla in una vista a scorrimento causa uno scrolling davvero nervoso. Inoltre, non è possibile creare la forma d'onda durante la registrazione, solo in seguito.
Per quanto riguarda l'aggiunta, ho utilizzato questo metodo: https://stackoverflow.com/a/11520553/1391672 Ma c'è un tempo di elaborazione significativo, anche quando si aggiungono due clip audio molto brevi insieme (nella mia esperienza).
In che modo i memo vocali fanno ciò che fa? Pensi che la forma d'onda sia disegnata in OpenGL o CoreGraphics? Stanno usando Core Audio o AVAudioRecorder? Qualcuno ha costruito qualcosa di simile che possa indicarmi la giusta direzione?
Grazie. Penso tu abbia ragione. Probabilmente dovrò implementare un qualche tipo di cache per i dati audio e disegnare solo ciò che è visibile sullo schermo. –
@lusus_vir Mi chiedo se si ottiene un risultato simile altrettanto semplice quanto l'app per memo vocali? – alfonsodev
Non è proprio come Memo vocali ma è piuttosto vicino. È decisamente abbastanza fluido per una prima versione dell'app. –