使用Plugin.Maui.Audio开发Android音频捕获应用时依赖注入报错
解决Plugin.Maui.Audio依赖注入错误
错误原因
DI容器未注册你的AudioService(或其对应接口IAudioService),导致Microphone.razor页面无法获取服务实例。
解决步骤
1. 注册自定义音频服务
在Program.cs的服务注册区块中,补充自定义服务的注册代码。现有代码仅完成了Plugin.Maui.Audio基础服务的注册,缺少你的AudioService注册:
// 现有Plugin.Maui.Audio注册代码 builder.Services.AddAudio(); builder.Services.AddSingleton(AudioManager.Current); // 添加自定义音频服务注册(推荐接口注入方式) builder.Services.AddSingleton<IAudioService, AudioService>();
如果你的Razor页面直接注入具体类AudioService而非接口,也可以直接注册具体类:
builder.Services.AddSingleton<AudioService>();
2. 匹配Razor页面注入方式
确保Microphone.razor中的注入语句与注册方式一致。推荐使用接口注入实现解耦:
@inject IAudioService AudioService
额外注意(运行前置条件)
Android平台需要录音权限,需在AndroidManifest.xml中添加权限声明:
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
内容的提问来源于stack exchange,提问作者Pablo Pelinski
相关产品推荐
相关产品推荐

