iOS какова ценность доступности SpeechIPANotation - PullRequest
0 голосов
/ 29 января 2019

На основе этого видео WWDC2018 мы можем динамически изменять то, как слова произносятся в AVSpeechSynthesizer.enter image description here

Я пытаюсь сделать это в своем приложении Xamarin, но не могу найти константу accessibilitySpeechIPANotation.

В документе NSMutableAttributedString.AddAttribute(...) это говорит о том, что константы можно найти здесь: UIKit.UIStringAttributeKey.Но того, кого я ищу, там нет.

Кто-нибудь знает, каково действительное строковое значение константы?Или еще лучше, где я могу найти в Xamarin.iOS?

(Мое приложение использует xamarin.ios v4.0.30319, если константа находится в более новой версии фреймворка, я обновлюэто, но Google, кажется, не дает мне никакого результата, когда я ищу его.)

1 Ответ

0 голосов
/ 29 января 2019

Причина: Xamarin для iOS основан на Objective-C. И существуют некоторые различия между swift и Objective-C.

Решение: Кодпросто так:

var attriStrng = new NSMutableAttributedString(new NSString("hello iPhone"));
// you can set the voice here ,a͡͡a͡͡a͡͡a͡͡a͡͡ is just for testing
attriStrng.AddAttribute(new NSString("AVSpeechSynthesisIPANotationAttribute"), new NSString("ˈa͡͡a͡͡a͡͡a͡͡a͡͡a͡͡a͡͡.ˈfo͡ʊn"),new NSRange(6,6));


var voice = new AVSpeechUtterance(attriStrng);

AVSpeechSynthesizer synthesizer = new AVSpeechSynthesizer();
synthesizer.SpeakUtterance(voice);
...