2014-06-07 2 views
5

AVSpeechSynthesis를 배우려고했습니다. 코드는 iOS 시뮬레이터 (iPad 및 iOS 모두)에서 제대로 작동하지만 음성 기능은 내 iPad에서 전혀 작동하지 않습니다. 여기 내 코드가있다.AVSpeechSynthesizer는 시뮬레이터에서는 작동하지만 기기에서는 작동하지 않습니다.

- (void)viewDidLoad 
{ 

[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 



//Load Model 
    self.string = @"Hello World"; 
    self.utterance = [[AVSpeechUtterance alloc] initWithString:self.string]; 
    self.utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"]; 
    self.utterance.rate = (float) 0.25; 

    //Load UI 
    self.textLabel.text = self.string; 


} 

- (IBAction)startSpeaking:(id)sender { 

    self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init]; 

    if ([self.speechSynthesizer isSpeaking]) { 

     [self.speechSynthesizer pauseSpeakingAtBoundary:AVSpeechBoundaryWord]; 


    } else { 

     [self.speechSynthesizer speakUtterance:self.utterance]; 

    }  
} 

UPDATE : AVSpeechSyntheSizer가 작동 있지만 그래서 나는 UI에 AVSpeechUtterance과 같은 텍스트가있는 UILabel의이 소리가 들리지 않습니다. 나는 AVSpeechSynthesizerDelegate를 구현하여 startSpeaking을 눌렀을 때 : 텍스트 레이블은 현재 단어를 빨간색으로 바꾼다. 그래서 AVSpeechSynthesizer는 델리게이트 호출을 만들기 때문에 작동해야한다는 것을 알고 있지만, 왜 내가 듣지 못하는지 알 수 없습니다. 볼륨이 올라가고 다른 앱에서 오디오를 재생하지 않습니다.

+0

self.speechSynthesizer가 범위를 벗어나지 않았는지 확인하십시오. 그것은 발화의 전체 지속 기간 동안 존재해야합니다. – RegularExpression

+0

@ 대니얼 알아 냈어? –

답변

7

자동 모드로 전화를 사용합니까? 그것은 신디사이저도 조용히합니다.

+0

감사합니다. 나는 그것을 확인했다. 확실히 자동 모드가 아닙니다. –

+0

하지만 페이스 북이나 유튜브에있는 특정 비디오가 소리없이 재생되는 경우가 있습니다. (침묵하지는 않지만). 그게 관련이 있는지 확실하지 않습니다. –

+2

벨소리를 켭니다. 볼륨 버튼 상단에있는 체크 박스. – Sonu

1

휴대 전화의 모드가 Mute이므로 작동하지 않습니다. 로부터 AssistiveTouch

  • 전원을 켜고 AssistiveTouch에 옵션으로 Accessibility
  • 이동에 Setting 옵션
  • 이동에

    • 이동 : 아이폰 OS 7 '음소거 켜짐'을 설정하려면 다음 단계를 수행 할 필요가 스위치 버튼
    • 그러면 이동 보조 아이콘이 장치 화면에 나타납니다.
    • 더 많은 옵션으로 펼치려면 터치하십시오.
    • 거기에서 Device을 터치하고 옵션을 선택하십시오.

    이제 프로젝트를 실행하여 제대로 작동하는지 확인하십시오.

    P.S :은 (아이폰 OS 8.0에서는이 코드가 제거 iOS8.1에서, 때문에 예상치 못한 버그, 작동하지 않을 것이며, 지금 완벽하게 작동한다) 는 작동 바랍니다. :)

  • +0

    이것은 내 iPhone SE에서 트릭을 실제로했습니다! 이것은 받아 들여진 대답이어야합니다. –