2017-03-22 7 views
1

Xamarin Documentation에서 텍스트 음성에 대한 샘플 코드를 따르려고했습니다. 안드로이드 폰은 안드로이드 폰에서 작동하지만 아이폰에서는 아무런 소리도 내지 않습니다. 델리게이트 함수 "DidStartSpeechUtterance"를 추가했는데 델리게이트 함수를 호출했지만 전화 소리는 들리지 않았습니다.Xamarin iOS : AVSpeechSynthesizer를 사용하여 소리가 나지 않습니까?

  var speechSynthesizer = new AVSpeechSynthesizer(); 

     var speechUtterance = new AVSpeechUtterance(text) 
     { 
      Rate = AVSpeechUtterance.MaximumSpeechRate/4, 
      Voice = AVSpeechSynthesisVoice.FromLanguage("en-US"), 
      Volume = 0.5f, 
      PitchMultiplier = 1.0f 
     }; 
     speechSynthesizer.DidStartSpeechUtterance += (sender, e) => 
     { 
      System.Diagnostics.Debug.WriteLine("Am I get called"); 
     }; 

     speechSynthesizer.SpeakUtterance(speechUtterance); 

에뮬레이터 iPhone SE iOS 10.2에서는 작동하지만 실제 장치에서는 작동하지 않습니다.

답변

1

정말하지만, 슬프게도 당신을위한 직접적인 답변을하지 않습니다

당신 제임스 Montemagno의 nuget 패키지는 당신을 위해 작동하는 경우 시도 할 수 있습니다 :이은으로 만들어진

https://github.com/jamesmontemagno/TextToSpeechPlugin

구현을 추상화하여 (공유) 이식 가능한 클래스 라이브러리에서 사용할 수 있도록하면 훨씬 많은 코드를 공유 할 수 있습니다. 그것이 당신에게 효과가 있는지 궁금합니다. .

AVFoundation.AVAudioSession.SharedInstance() SetCategory (AVFoundation.AVAudio SessionCategory :

+0

작동하지 않습니다 .... 권한을 부여해야합니까? – LittleFunny

+0

이것은 뭔가 다른 점을 의미합니다. '다른'실제 iPhone을 사용해 보셨습니까? 설정 일 수도 있고, 음성 용 볼륨 일 수도 있으며, 강제로 비활성화 될 수도 있습니다. "배경 오디오"에 대한 권한 설정을 시도 했습니까? 그럴 수도 있습니다. 그것, 또는 사람들이 http://stackoverflow.com/questions/24093434/avspeechsynthesizer-works-on-simulator-but-not-on-device에서 말하는 것을 시도해보십시오. –

+0

새로운 빈 프로젝트에서이 도구를 사용해 보았습니다. 그것은 작동했지만 내 작업 프로젝트가 작동하지 않습니다. 어디서나 장애가 있거나 장애 여부를 확인할 수 있는지 알고 있습니까? – LittleFunny

0

작동하지 않는 중 하나 뭔가 다른 (음성 합성기 부분 이외의) 잘못되면 나는 문제를 해결했습니다. Reco rd); . PlayAndRecord로 바꾸어서 작동하도록했습니다.

+0

굉장한 걸 찾았습니다! –

0

나는이 문을 AVFoundation.AVAudioSession.SharedInstance()로 설정 한 문제를 발견했다. SetCategory (AVFoundation.AVAudio SessionCategory.Reco rd); . PlayAndRecord로 변경하여 작동하도록했습니다.

관련 문제