AVAudioEngine numaralı telefondan bir ses çıktısını almak için Swift belgelerine göz atıyorum ama cihazına baktım ama kullanışlı bir ipucu bulamadım.
Herhangi bir öneriniz var mı?SWIFT - AVAudioEngine'den veya AudioPlayerNode'dan ses kaydetmek mümkün mü? Evet ise nasıl?
Çözüm Matt'in yanıtı sayesinde bir yol buldum. İşte bir AVAudioEngine içinden geçtikten sonra bir ses kaydetmek için nasıl bir örnek kod
newAudio = AVAudioFile(forWriting: newAudio.url, settings: nil, error: NSErrorPointer())
//Your new file on which you want to save some changed audio, and prepared to be bufferd in some new data...
var audioPlayerNode = AVAudioPlayerNode() //or your Time pitch unit if pitch changed
//Now install a Tap on the output bus to "record" the transformed file on a our newAudio file.
audioPlayerNode.installTapOnBus(0, bufferSize: (AVAudioFrameCount(audioPlayer.duration)), format: opffb){
(buffer: AVAudioPCMBuffer!, time: AVAudioTime!) in
if (self.newAudio.length) < (self.audioFile.length){//Let us know when to stop saving the file, otherwise saving infinitely
self.newAudio.writeFromBuffer(buffer, error: NSErrorPointer())//let's write the buffer result into our file
}else{
audioPlayerNode.removeTapOnBus(0)//if we dont remove it, will keep on tapping infinitely
println("Did you like it? Please, vote up for my question")
}
}
Umut bu yardımcı olur: (i teknik olarak daha önce olduğunu düşünüyorum)!
Bir sorun çözmek için:
Bazen, outputNode girişi daha kısadır: Eğer 2 oranında zaman hızını hızlandırmak eğer ses 2 kez daha kısa olacaktır. Bu sorun im şimdi dosyayı kaydetmek için benim durumum (hat 10)
if(newAudio.length) < (self.audioFile.length)//audiofile being the original(long) audio and newAudio being the new changed (shorter) audio.
burada Herhangi bir yardım olduğu için bakan mı?
İşte: [Apple doc, AV'den dışa aktarılacak] (https://developer.apple.com/library/prerelease/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/05_Export.html#//apple_ref/doc/uid/TP40010188-CH9-SW2) – Moritz
Teşekkürler @eric D., koddan geçiyorum. İşi yapacak gibi görünüyor. Yine de, keşfettiğim birçok şey var ve anlaması gereken birçok satır var. Soru sorsam sorun olur mu? Örneğin, URL ile bir AudioFile olmayan bir Audio, ancak bir audioEngine veya AudioNode nasıl yükleyebilirim? Bu kodu hiç incelediniz mi? – mlk
Şahsen, pek değil, sadece bu dokümanı kaçırmış olabileceğinizi düşündüm, bu yüzden bağlantıyı yapıştırdım. Ama sorun bu değil: Şey, SO hakkında çok geniş sorular soramazsın. Ve yorumlar zaten bunun için yer değil. Mevcut kodunuzu içeren, neyi başarmaya çalıştığınızı ve nerede mücadele ettiğinizi gösteren yeni bir soru oluşturmanızı öneririm. Gönderi başına * bir * konu. Bu arada, SO'ya hoş geldiniz. :) – Moritz