2017-03-22 13 views
1

私はXamarin Documentationのサンプルコードを使って、テキストを音声に変換しようとしました。アンドロイドの部分は私のアンドロイドの携帯電話で動作しますが、iPhoneでテストしても音が出ませんでした。デリゲート関数 "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に変更します

関連する問題