Maui 教學 – Maui有兩個頗有用的功能我覺得可以介紹一下, 一個為Maui Text-to-Speech, 另一個為Maui Unit Converters.
- Text-to-Speech就是把文字轉化為語音, 並播放出來.
- Unit Converters就是把記錄物件的單位轉換成另一單位.
Text-to-Speech有何用處呢?
- 最基本的一個就是把文件, 文章讀出來, 可幫助視力不佳者(如老花等)閱讀.
- 其次, 就是你想用App發出語音訊息而能每一次也親口說, 這時Text-to-Speech幫到你.
- 試想你寫一個學校學生管理系統. 如果你是一個中學學校老師, 要透過App對學生作出提示, 例如上課時, 當學生離開學校範圍 (不准離開學校), 你想提示學生不要離開, App突然用語音提示 “xx同學, 不同離開學校.”, 這時對學生多少有一個心理作用的而你又不用每一次親自也出面講.
Unit Converter有何用處呢?
- Unit Converter有用的地方在於要把記錄物件的單位轉換成另一單位, 特別是磅轉公斤等, 如果要自己寫的話, 在現實上的複雜使用會產生大量的小數位, 要花時間反覆改進才行.
- 自製而製作不成熟的Unit Converter用在Invoice上會比較危險, 因為始終也是計錢的, 計多計少給客戶也是麻煩的. 現在Maui提供了Unit Converters, 正常來說也會計得比較好, 不會出錯.
好了, 現在正式開始介紹Text-to-Speech及Unit Converters的CODE了, Let’s Code!
Text-to-Speech |
Code – 說出TEXT的內容 (英文) |
public async void Speak(){ await TextToSpeech.Default.SpeakAsync(“Hello World”); } |
Code – 說出英文 |
public async void Speak(){ IEnumerable<Locale> locales = await TextToSpeech.Default.GetLocalesAsync(); SpeechOptions options = new SpeechOptions() { Pitch = 1.5f, // 0.0 – 2.0 Volume = 0.75f, // 0.0 – 1.0 Locale = locales.FirstOrDefault() }; await TextToSpeech.Default.SpeakAsync(“Hello, I am jlam”); } |
Code – 說出中文 |
public async void Speak() { IEnumerable<Locale> locales = await TextToSpeech.Default.GetLocalesAsync(); IEnumerable<Locale> locals = await TextToSpeech.GetLocalesAsync(); Locale localTw = locals.FirstOrDefault(y => string.Equals(y.Language, “zh-TW”)); SpeechOptions options = new SpeechOptions() { Pitch = 1.5f, // 0.0 – 2.0 Volume = 0.75f, // 0.0 – 1.0 Locale = localTw }; isBusy = true; cts = new CancellationTokenSource(); await Task.WhenAll(TextToSpeech.Default.SpeakAsync(“大家好! 我是林三! “, options, cancelToken: cts.Token)).ContinueWith((t) => { isBusy = false; }, TaskScheduler.FromCurrentSynchronizationContext()); } |
Code – 除消SpeakAsync的Action |
CancellationTokenSource cts; public void CancelSpeech() { if (cts?.IsCancellationRequested ?? true) return; cts.Cancel(); } |
Code – Unit Converter |
var miles = 14.5; var meters = UnitConverters.MilesToMeters(miles); |
温度: FahrenheitToCelsius : 華氏度 至 攝氏度 CelsiusToFahrenheit: 攝氏度 至 華氏度 CelsiusToKelvin: 攝氏度 至 開爾文 KelvinToCelsius: 開爾文 至攝氏度 |
距離: MilesToMeters: 英里 至 米 MilesToKilometers: 英里 至 公里 KilometersToMiles: 公里 至 英里 MetersToInternationalFeet: 米 至 InternationalFeet InternationalFeetToMeters: InternationalFeet 至 米 |
重量: KilogramsToPounds: 公斤 至 磅 PoundsToKilograms: 磅 至 公斤 StonesToPounds: 英石 至 磅 PoundsToStones: 磅 至 英石 |
角度: DegreesToRadians: 度數 至 弧度 RadiansToDegrees: 弧度 至 度數 |
其他 CoordinatesToMiles CoordinatesToKilometers DegreesPerSecondToRadiansPerSecond RadiansPerSecondToDegreesPerSecond DegreesPerSecondToHertz RadiansPerSecondToHertz HertzToDegreesPerSecond HertzToRadiansPerSecond KilopascalsToHectopascals HectopascalsToKilopascals KilopascalsToPascals HectopascalsToPascals AtmospheresToPascals PascalsToAtmospheres |