Plugins Shinny.SpeechRecognition(插件)与MvvmCross和Xamarin.Forms的集成
我已经在MvvmCross Xamarin.Forms解决方案中实现了闪亮的语音识别插件 => Nuget=> 我试图在MvxViewModel构造函数中使用ISpeechRecognition,因为它在GitHub上的Prism示例上工作 => 我已经为MvvmCross实现了集成插件。 => 现在我想知道如何使用语音识别服务 能给我一些类似于:Plugins Shinny.SpeechRecognition(插件)与MvvmCross和Xamarin.Forms的集成,plugins,xamarin.forms,integration,mvvmcross,speech-recognition-api,Plugins,Xamarin.forms,Integration,Mvvmcross,Speech Recognition Api,我已经在MvvmCross Xamarin.Forms解决方案中实现了闪亮的语音识别插件 => Nuget=> 我试图在MvxViewModel构造函数中使用ISpeechRecognition,因为它在GitHub上的Prism示例上工作 => 我已经为MvvmCross实现了集成插件。 => 现在我想知道如何使用语音识别服务 能给我一些类似于: public YourViewsModel(IMvxNavigationService navigationService, ISpeechReco
public YourViewsModel(IMvxNavigationService navigationService, ISpeechRecognizer speechRecognizer)
{
_navigationService = navigationService;
_speechRecognizer = speechRecognizer;
}
或者可能是寄存器依赖的依赖注入,如:
Mvx.IoCProvider.LazyConstructAndRegisterSingleton<ISpeechRecognizer, SpeechRecognizerImpl>();
然后初始化顶级自定义应用程序定义。
在OnCreate()方法中:
现在在我们的ViewModel中,我们可以继承ShinyMvxViewModel来启动ViewModel
公共类YourViewModel:ShinyMvxViewModel{}
一切都很顺利。应用程序启动时没有问题
这不起作用:
public YourViewsModel(IMvxNavigationService navigationService, ISpeechRecognizer speechRecognizer)
我可以创建构造函数,因为它不识别ISpeechRecognizer
只有
他正在工作
这也不行:
private ISpeechRecognizer _speechRecognizer;
_speechRecognizer = Mvx.IoCProvider.Resolve<ISpeechRecognizer>();
专用ISpeechRecognizer\u语音识别器;
_speechRecognizer=Mvx.IoCProvider.Resolve();
错误在于它没有ISpeechRecognizer的实现。我不知道
我已经在override方法中初始化了惰性寄存器
protected override void InitializePlatformServices()
Mvx.IoCProvider.LazyConstructAndRegisterSingleton<ISpeechRecognizer, SpeechRecognizerImpl>();
protectedoverride void InitializePlatformServices()
Mvx.IoCProvider.lazyconstructurandregistersingleton();
谢谢你的帮助
ZebiPhoire您是否也可以分享ISpeechRecognizer和SpeechRecognizer(您的情况下是SpeechRecognizerImpl)类的代码?SpeechRecognizer类是否从ISpeechRecognizer继承?您使用的是哪个版本的MVVMCross?你把Mvx.lazyconstructurandregistersingleton()放进去了吗;在Setup.cs类的InitializeIoC()覆盖中?如果您完成了所有这些操作,并且还拥有一个私有字段
private IFileStorageService\u SpeechRecognitor
您应该能够做到这一点公开您的ViewsModel(IMvxNavigationService navigationService,ISpeechRecognizer speechRecognizer){{{u speechRecognizer=speechRecognizer;…}
没有问题。您是否也可以共享ISpeechRecognizer和speechRecognizer(在您的情况下是SpeechRecognizerImpl)类的代码?SpeechRecognizer类是否从ISpeechRecognizer继承?您使用的是哪个版本的MVVMCross?你把Mvx.lazyconstructurandregistersingleton()放进去了吗;在Setup.cs类的InitializeIoC()覆盖中?如果您完成了所有这些操作,并且还拥有一个私有字段private IFileStorageService\u SpeechRecognitor
您应该能够做到这一点公开您的视图模型(IMvxNavigationService navigationService,ISpeechRecognizer speechRecognizer){{u speechRecognizer=speechRecognizer;…}
没有问题
public YourViewsModel(IMvxNavigationService navigationService)
private ISpeechRecognizer _speechRecognizer;
_speechRecognizer = Mvx.IoCProvider.Resolve<ISpeechRecognizer>();
protected override void InitializePlatformServices()
Mvx.IoCProvider.LazyConstructAndRegisterSingleton<ISpeechRecognizer, SpeechRecognizerImpl>();