그것은 당신의 응용 프로그램에 의해 생성 된 오디오를 녹음 할 수 있습니다 (되지 않은 다른 응용 프로그램에서). AVSpeech
은 생성 된 오디오를 저장하는 API를 제공하지 않지만 Apple은 작업을 수행 할 수있는 다른 API를 가지고 있습니다. 해결책은 아마도 당신이 원하는만큼 깨끗하지는 않지만 작동해야합니다.
Apple은 고급 오디오 처리 및 녹음을 관리하기 위해 Audio Unit Framework이라는 프레임 워크를 제공합니다. 이것은 오디오를 동시에 재생하고 녹음 할 수있는 iOS SDK의 유일한 프레임 워크입니다. Audio Unit Hosting Guide이 유망 해 보이며 Audio Mixer Sample App도 마찬가지입니다.
참고 : AVSpeechSynthesizer에서 오디오 장치 프레임 워크를 사용하지 않았습니다. 작동하지 않을 수도 있습니다. 그러나 AVSpeechSynthesizer가 CoreAudio와 잘 어울리는 것을 고려하면 AudioUnits와 함께 작동 할 가능성이 높습니다.
위의 해결 방법으로 문제가 해결되지 않으면 간단한 해결 방법이 도움이 될 수 있습니다. AVSpeechSynthesizer
은 제대로 작동하려면 네트워크 연결이 필요하지 않으므로 많은 경우 오디오를 저장하려면 에이 필요하지 않을 수 있습니다. 대신 나중에 NSFileManager를 사용에 대한 텍스트를 저장할 수 :
NSString *textToSynthesize = @"Just what do you think you are doing, Dave?";
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths firstObject];
[textToSynthesize writeToFile:[documentsDirectory stringByAppendingPathComponent:@"synthText.txt"] atomically:YES encoding:NSUTF8StringEncoding error:&error];
텍스트를 합성 할 준비가되면 바로 파일을 읽고 다시 AVSpeechSynthesizer
에 연결합니다. 이 솔루션은 모든 경우에 적용되거나 적용되지 않습니다 (예 : 오디오 파일을 다른 사람에게 보내야하는 경우).
이러한 문제는 몇 가지 해결 방법 일 뿐이며 둘 다 해결 방법이며 특정 시나리오에 따라 작동하지 않을 수 있습니다. YMMV. 행운을 빕니다!
이 API는 새로운 기능이므로 나중에 추가 될 수있는 특정 기능이 부족할 수 있습니다. 재생중인 오디오를 녹음하는 방법을 살펴보십시오. – erdekhayser
그래, 이미 AVAudioRecoder를 설정했지만 깨끗한 솔루션이 있는지 알고 싶다 – Sean
이 문제에 대한 적절한 해결책을 찾았습니까? 비슷한 것을 만들려고합니다. –