所以,我现在用的是Plugin.SpeechRecognition NuGet包和下面就行,它不工作的确切的代码。
我曾尝试加入“Plugin.Permissions” NuGet包并没有帮助,我已经试着用搜索引擎的问题,但没有任何人得到这个问题,它似乎很好地工作的每一个人。我也试图消除“等待”关键字,它只是说,
运算符“==”不能被施加到型“的IObservable”和“布尔”的操作数
这里是我的代码:
private async void GetSpeechPermission()
{
var granted = await CrossSpeechRecognition.Current.RequestPermission();
if (granted == true)
{
// go!
}
}
因此,如果没有错误什么那么将会发生什么,代码应该运行良好,但该行代码
await CrossSpeechRecognition.Current.RequestPermission();
有一个红色下划线说
的IObservable”不包含用于定义‘GetAwaiter’和没有扩展方法‘GetAwaiter’接受型的第一参数‘的IObservable’可以找到(是否缺少using指令或程序集引用?)
当我使用该插件的创造者从这里提供的确切的代码https://github.com/aritchie/speechrecognition
任何帮助深表感谢!!
解决这个是添加
使用System.Reactive.Linq
在而不是使用一个布尔值作为代码示例插件提示,而是在if语句代码的使用区间,并且在“授予”变量转换为字符串,然后检查“可用”,代码:
private async void GetSpeechPermission()
{
var granted = await CrossSpeechRecognition.Current.RequestPermission();
if (granted.ToString() == "Available")
{
//GO
}
}
希望这有助于一些之一! :d