xamarin - iOS的accessibilitySpeechIPANotation的价值是什么
问题描述
基于这个WWDC2018 视频,我们可以动态改变单词的发音方式AVSpeechSynthesizer
。
我试图在我的 Xamarin 应用程序中这样做,但我找不到accessibilitySpeechIPANotation
常量。
在它的文档中NSMutableAttributedString.AddAttribute(...)
说可以在这里找到常量:UIKit.UIStringAttributeKey
. 然而我要找的那个不在那里。
有谁知道常量的实际字符串值是什么?或者更好的是,我可以在 Xamarin.iOS 的哪里找到?
(我的应用使用xamarin.ios v4.0.30319,如果常量在较新版本的框架中,我会更新它,但是当我搜索它时google似乎没有给我任何结果。)
解决方案
原因: Xamarin for 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);
推荐阅读
- typescript - 使用可选问号标记属性而不重新排序
- c++ - 尝试重载模板类中的 >> 运算符时出现未定义的引用错误
- django - Django 2 - 如何对多个非数据库字段值运行查询
- javascript - 在 JavaScript 中获取 SVG 图像尺寸
- sql-server - 从 VB.NET 错误地插入 SQL 日期时间
- sql - 如何根据字段标题拆分列
- java - 修复 Java newInstance() 已弃用
- c# - ItextSharp 仅从我的 pdf 中检索标题文本
- batch-file - 如何将批处理脚本转换为注册表上下文菜单文件 REG_MULTI_SZ
- sql-server - 双向同步 2 SQL Server 数据库