官术网_书友最值得收藏!

  • Xamarin Blueprints
  • Michael Williams
  • 232字
  • 2021-07-08 11:48:24

WinPhone text-to-speech implementation

Now we go back to Windows Phone for the last implementation. See how tricky it can be when you have to switch between multiple platforms. Imagine if we had to change languages and re-write IoC containers; the amount of work would be much greater. Not only that, there would be no point in using IoC, because we cannot share any code.

So firstly, don't forget to import the nuget package for Autofac:

Now that we have access to the Autofac framework, let's continue implementing the text to speech service. Start with adding a new folder called Services, then add the TextToSpeechWinPhone.cs file and implement it:

public class TextToSpeechWinPhone : ITextToSpeech 
        { 
            public async void Speak(string text) 
            { 
                MediaElement mediaElement = new MediaElement (); 
 
                var synth = new Windows.Media.SpeechSynthesis. SpeechSynthesizer (); 
 
                SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync(text); 
 
                mediaElement.SetSource(stream, stream.ContentType); 
                mediaElement.Play(); 
            } 
        } 

Looking at this more closely, you can see the instantiation of MediaElement; this is used to play an audio source. Our source in this case is SpeechSynthesisStream; this stream is built via a speech synthesizer. When we call the function SynthesizeTextToStreamAsync, it will be an audio stream based on the text inserted into this function. We then set the MediaElement source to the stream and call the Play function to begin speaking. One addition to configuring Windows Phone is checking the capability in the app manifest file.

主站蜘蛛池模板: 策勒县| 迭部县| 广西| 泰来县| 长岛县| 罗源县| 榆社县| 商都县| 昌平区| 山阳县| 江川县| 泾阳县| 郧西县| 民勤县| 若羌县| 丹寨县| 确山县| 错那县| 贵阳市| 友谊县| 安阳县| 于田县| 沁源县| 湘潭县| 霍林郭勒市| 祁东县| 会理县| 博野县| 响水县| 黎川县| 湛江市| 白河县| 东明县| 金川县| 乌恰县| 贵阳市| 肇庆市| 吐鲁番市| 盖州市| 曲靖市| 宾川县|