Domanda

Mi piacerebbe essere in grado di riprodurre l'audio che ho registrato usando AVAudioRecorder @ 1,5x o la velocità 2,0x. Non vedo nulla in AVAudioPlayer che sosterrà questo. Apprezzerei alcuni suggerimenti, con il codice se possibile, su come raggiungere questo obiettivo con l'SDK iPhone 3.x. Io non sono eccessivamente preoccupati con l'abbassamento il passo per compensare la maggiore velocità di riproduzione, ma essere in grado di farlo sarebbe ottimale.

È stato utile?

Soluzione

questa domanda . In altre parole, si dovrà utilizzare un'API diversa, come servizi coda audio. Se volete provare un semplice hack, si può provare a raddoppiare la frequenza di campionamento di proprietà del file audio. Probabilmente non funzionerà comunque. Inoltre, sappiate che è abbastanza CPU chiedendo di regolare la velocità di riproduzione, mantenendo lo stesso passo. Avrete bisogno di utilizzare un'una delle tecniche disponibili chiamati "tempo di stretching" . Inoltre, nel caso in cui non si è reso conto che, ormai, fare le cose complicate con l'audio su iPhone è un grande dolore perché la documentazione di Apple è in genere o molto cattiva o inesistente.

Altri suggerimenti

La modifica della frequenza di campionamento dovrebbe funzionare proprio come un registratore a nastro sarebbe se hai giocato più veloce. Tutto diventa più alto in campo. Per mantenere il passo stesso, si avrebbe bisogno di configurare un grafico Audio Unit che include l'effetto AUPitch, e abbassare il passo con lo stesso rapporto di che si aumenta la frequenza di campionamento per.

Se si desidera riprodurre l'audio velocemente o più lentamente, c'è un metodo build-in in AVAudioPlayer. Hai provato AudioPlayer Vota proprietà? in Swift sarà come questo -

    audioP = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: selectedPath), fileTypeHint: "caf")
    audioP.enableRate = true
    audioP.prepareToPlay()
    audioP.rate = 1.5
    audioP.play()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top