如何在.Net MAUI 中访问麦克风输入?

问题描述 投票:0回答:2

我正在开发 .net maui 应用程序,该应用程序可以测量音量并通过蓝牙将其发送到记录数据并制作图表的电脑,作为一个业余爱好项目。我的问题是访问麦克风输入。在毛伊岛似乎没有多平台的方法可以做到这一点。所以我尝试使用特定于平台的 android api 来做到这一点,但是当我尝试这样做时,似乎我需要的类没有在 maui Android 命名空间中完全实现。

我遇到问题的代码部分是这样的:

using Android.Media;
using Java.Util;

public static class MicIn
{
    static MediaRecorder mRecorder;


    // Other functions

    public static void startRecorder()
    {
        if (mRecorder == null)
        {
            mRecorder = new MediaRecorder();
            mRecorder.SetAudioSource(MediaRecorder.AudioSource.MIC);
            mRecorder.SetOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mRecorder.SetAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mRecorder.SetOutputFile("/dev/null");
            try
            {
                mRecorder.Prepare();
            }
            catch (Java.IO.IOException ioe)
            {
                Debug.WriteLine("IO exception");

            }
            catch (Java.Lang.SecurityException e)
            {
                Debug.WriteLine("Security exception");
            }
            try
            {
                mRecorder.Start();
            }
            catch (Java.Lang.SecurityException e)
            {
                Debug.WriteLine("Security exception");
            }
        }
    }
}

Visual studio 在 MediaRecorder.AudioSource.MIC、MediaRecorder.OutputFormat.THREE_GPP 和 MediaRecorder.AudioEncoder.AMR_NB 上给我错误 它说这些类没有 MIC、THREE_GPP 和 AMR_NB 常量的定义,即使它们在官方 android api 文档中也是如此。

您对 .net maui 中可能出现的错误或获取麦克风输入的其他方式有任何想法吗?谢谢你的帮助。

c# android maui
2个回答
0
投票

根据文档

音频源

Mic

输出格式

ThreeGpp

音频编码器

AmrNb


0
投票

而不是

mRecorder.SetAudioSource(MediaRecorder.AudioSource.MIC);

使用

mRecorder.SetAudioSource(AudioSource.Mic);
© www.soinside.com 2019 - 2024. All rights reserved.