N'importe qui m'aide à enregistrer et jouer de l'audio simultanément dans Iphone.Enregistrer et lire de l'audio simultanément
Répondre
Vous pouvez utiliser le framework AVFoundation. Il a AVAudioPlayer pour lire les fichiers audio et AVAudioRecorder pour enregistrer. Vous devez garder à l'esprit que Recorder enregistrera avec l'utilisation du micro seulement. La lecture simultanée d'un fichier audio et de l'enregistrement dépend de la façon dont le micro perçoit le son lu.
Vous pouvez lire et enregistrer simultanément sur des appareils iOS (à l'exception du Touch de 1ère génération) à l'aide de l'AudioIO RemoteIO ou de l'API Audio Queue. Il s'agit d'API de niveau inférieur dans lesquelles vous devez gérer vous-même les buffers entrants d'échantillons PCM entrants et sortants.
Consultez l'application exemple aurioTouch d'Apple pour un exemple de code.
N'importe quel objectif C ou code Swift disponible? –
S'il vous plaît Vérifiez aurioTouch exemple de code de pomme pour l'enregistrement et de lecture audio simultanément
Vous pouvez également consulter Recording Audio on an iPhone
Hope this helps certaines personnes ... J'ai fait une application qui enregistre l'audio, par exemple à partir d'un application comme Pandora et peut lire l'audio. Exécuter/lire une application audio, exécuter AudioMic, enregistrer, désactiver le son de l'application audio, revenir en arrière et lire l'audio enregistré depuis AudioMic. Yay!
Pour enregistrer un lire les fichiers audio dans iOS, vous pouvez utiliser le cadre AVFoundation. Utilisez ci-dessous code Swift pour enregistrer et lire les audios. Rappelez-vous que l'enregistreur va enregistrer l'audio avec l'utilisation de micro, donc s'il vous plaît tester ce code sur l'appareil.
import UIKit
import AVFoundation
extension String {
func stringByAppendingPathComponent(path: String) -> String {
let nsSt = self as NSString
return nsSt.stringByAppendingPathComponent(path)
}
}
class ViewController: UIViewController, AVAudioPlayerDelegate, AVAudioRecorderDelegate{
var audioPlayer : AVAudioPlayer!
var audioRecorder : AVAudioRecorder!
@IBOutlet var recordButton : UIButton!
@IBOutlet var playButton : UIButton!
@IBOutlet var stopButton : UIButton!
override func viewDidLoad() {
super.viewDidLoad()
self.recordButton.enabled = true
self.playButton.enabled = false
self.stopButton.enabled = false
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
//MARK: UIButton action methods
@IBAction func playButtonClicked(sender : AnyObject){
let dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(dispatchQueue, {
if let data = NSData(contentsOfFile: self.audioFilePath())
{
do{
self.audioPlayer = try AVAudioPlayer(data: data)
self.audioPlayer.delegate = self
self.audioPlayer.prepareToPlay()
self.audioPlayer.play()
}
catch{
print("\(error)")
}
}
});
}
@IBAction func stopButtonClicked(sender : AnyObject){
if let player = self.audioPlayer{
player.stop()
}
if let record = self.audioRecorder{
record.stop()
let session = AVAudioSession.sharedInstance()
do{
try session.setActive(false)
}
catch{
print("\(error)")
}
}
}
@IBAction func recordButtonClicked(sender : AnyObject){
let session = AVAudioSession.sharedInstance()
do{
try session.setCategory(AVAudioSessionCategoryPlayAndRecord)
try session.setActive(true)
session.requestRecordPermission({ (allowed : Bool) -> Void in
if allowed {
self.startRecording()
}
else{
print("We don't have request permission for recording.")
}
})
}
catch{
print("\(error)")
}
}
func startRecording(){
self.playButton.enabled = false
self.recordButton.enabled = false
self.stopButton.enabled = true
do{
let fileURL = NSURL(string: self.audioFilePath())!
self.audioRecorder = try AVAudioRecorder(URL: fileURL, settings: self.audioRecorderSettings() as! [String : AnyObject])
if let recorder = self.audioRecorder{
recorder.delegate = self
if recorder.record() && recorder.prepareToRecord(){
print("Audio recording started successfully")
}
}
}
catch{
print("\(error)")
}
}
func audioFilePath() -> String{
let path = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]
let filePath = path.stringByAppendingPathComponent("test.caf") as String
return filePath
}
func audioRecorderSettings() -> NSDictionary{
let settings = [AVFormatIDKey : NSNumber(int: Int32(kAudioFormatMPEG4AAC)), AVSampleRateKey : NSNumber(float: Float(16000.0)), AVNumberOfChannelsKey : NSNumber(int: 1), AVEncoderAudioQualityKey : NSNumber(int: Int32(AVAudioQuality.Medium.rawValue))]
return settings
}
//MARK: AVAudioPlayerDelegate methods
func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) {
if flag == true{
print("Player stops playing successfully")
}
else{
print("Player interrupted")
}
self.recordButton.enabled = true
self.playButton.enabled = false
self.stopButton.enabled = false
}
//MARK: AVAudioRecorderDelegate methods
func audioRecorderDidFinishRecording(recorder: AVAudioRecorder, successfully flag: Bool) {
if flag == true{
print("Recording stops successfully")
}
else{
print("Stopping recording failed")
}
self.playButton.enabled = true
self.recordButton.enabled = false
self.stopButton.enabled = false
}
}
J'avais testé ce code sur Xcode 7.0 & iOS 9.
- 1. Lire et écrire simultanément des fichiers?
- 2. simultanément lire et écrire des données dans le fichier
- 3. enregistrer et lire le même fichier
- 4. inputbox et menubox simultanément
- 5. lire, éditer et enregistrer des fichiers de configuration (php)
- 6. enregistrer et lire un fichier xml obtenir de l'autre url
- 7. comment ouvrir plusieurs fichiers simultanément pour lire dans c
- 8. Comment lire et écrire des données simultanément dans une application de discussion avec J2ME?
- 9. Utiliser simultanément Github et Unfuddle
- 10. serveur globalhost et localhost simultanément
- 11. Enregistrer des Btrees dans un fichier disque et le lire
- 12. Comment enregistrer et lire un CGLayerRef, dans un NSMutableArray
- 13. Enregistrer et lire le fichier avec flux sur BlackBerry
- 14. SpeechSynthesizer - Comment lire/enregistrer le fichier wav?
- 15. En utilisant AVAudioPlayer et MPMoviePlayerController simultanément
- 16. nécessite jruby semble fonctionner et échouer simultanément
- 17. Android: Téléchargement et affichage des images simultanément?
- 18. Comment lire le fichier xml et enregistrer à l'aide HTTPRequest et la réponse
- 19. Comment obtenir l'index et l'élément de liste simultanément dans Python?
- 20. Plugins de runner Reharper pour xunit et mspec simultanément
- 21. Avoir plusieurs pointeurs de fichiers ouverts simultanément?
- 22. exécuter quelques commandes simultanément
- 23. "Enregistrer sous" et "Enregistrer et ajouter un autre" dans Admin
- 24. recharger simultanément uitableview
- 25. JAVA: lire et écrire un fichier ensemble
- 26. comment puis-je enregistrer de l'audio en C#
- 27. enregistrer en direct streaming audio
- 28. enregistrer et compiler automatiquement
- 29. Comment lire et enregistrer le fichier * .doc en Java par programme?
- 30. L'utilisation d'un modèle à lire et une autre pour enregistrer les données
Envoyez-moi une description plus. L'enregistrement devrait être fait par micro? Quelle précision doit être la synchronisation, etc. Peut-être que vous devriez vérifier le code d'échantillon de pomme aurioTouch. – Vanya