# Microphone Input (using FMOD) Not Detected on Xbox One

**URL:** <https://qa.fmod.com/t/microphone-input-using-fmod-not-detected-on-xbox-one/16122>\
**Category:** Unity\
**Tags:** xboxone, unity, csharp\
**Created:** [August 28, 2020, 7:31pm UTC](https://qa.fmod.com/t/microphone-input-using-fmod-not-detected-on-xbox-one/16122 "2020-08-28T19:31:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Adam\_Weesner](https://avatars.discourse-cdn.com/v4/letter/a/bc79bd/32.png) [@Adam\_Weesner](https://qa.fmod.com/u/Adam_Weesner)\
**Post date:** [August 28, 2020, 7:31pm UTC](https://qa.fmod.com/t/microphone-input-using-fmod-not-detected-on-xbox-one/16122/1 "2020-08-28T19:31:52Z")

</div>

Hi. I’m having a little trouble detecting an external microphone through FMOD for a Unity project when building for Xbox One. When playing, the game doesn’t register any mic input, nor does it seem to detect the mic’s presence. For all other platforms (PC, Android, IOS, Switch) my game seems to detect a mic perfectly well. In my RuntimeManager, I have

> advancedSettings.maxXMACodecs = realChannels

(my FMOD library is also set to XMA) and my FMOD.OUTPUTTYPE is defaulted to AUTODETECT (it seems to default to WINAPI).

When calling the following line in code while the game is running on the Xbox One:

> Debug.Log(string.Format(“Recording from {0} ({1}, {2}), sample rate = {3}, state={4}”, inputDriverName, m\_InputDriverId, inputDriverGuid, m\_SampleRate, inputDriverState));

I get this message:

> Recording from Kinect (0, 001d0054-00e7-0013-4c00-4c000c00d400), sample rate = 16000, state=CONNECTED, DEFAULT

Which is odd, because the Kinect is unplugged from the console. I only have the headset plugged in.

An example of the above line working (on PC) is as follows:

> Input driver 0: Microphone (Pro C920) (765b9694-d308-4b69-942b-978e654777e6), sampleRate=16000, STEREO (2 channels) – CONNECTED, DEFAULT (connected? True)

Calling this line:

> FMODUnity.RuntimeManager.CoreSystem.getNumDrivers(out num);

returns just the number 1.

Also, “Microphone.devices” returns null.

I made sure to include this line in the “AppXManifest.xml”:

> \<DeviceCapability Name=“microphone” /\>

I’ve already gone ahead and imported the Xbox One plugin for FMOD. I’ve read through both FMOD, Unity, and Xbox One’s documentation and there doesn’t appear to be any info on this exact subject. Is there anything I’m missing here? An extra plugin to install or setting to configure?

Please let me know if you’d like code segments or any more information. I appreciate any assistance on this matter. Cheers!

---

<div class="post-metadata">

**Author:** ![mathew](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/mathew/32/431_2.png) [@mathew](https://qa.fmod.com/u/mathew)\
**Post date:** [August 30, 2020, 11:14pm UTC](https://qa.fmod.com/t/microphone-input-using-fmod-not-detected-on-xbox-one/16122/2 "2020-08-30T23:14:20Z")

</div>

There is a note in our platform specific docs for the API that might be relevant to you case:

> If using the recording API support must be explicitly enabled in the application manifest (regardless of whether Kinect is used or not). See below for the necessary additions to the manifest or check the FMOD examples for reference:

```
<Capabilities>
    <mx:Capability Name="kinectAudio" />
    <mx:Capability Name="kinectGamechat" />
</Capabilities>

```

The Kinect device will always show regardless of whether it’s connected, this is a quirk of how the Xbox hardware is configured.

---

<div class="post-metadata">

**Author:** ![Adam\_Weesner](https://avatars.discourse-cdn.com/v4/letter/a/bc79bd/32.png) [@Adam\_Weesner](https://qa.fmod.com/u/Adam_Weesner)\
**Post date:** [August 31, 2020, 6:03pm UTC](https://qa.fmod.com/t/microphone-input-using-fmod-not-detected-on-xbox-one/16122/3 "2020-08-31T18:03:05Z")

</div>

It turns out that, in addition to adding those Capability lines to the Manifest, I also needed to set the InputDriverId to be set to NumInputDrivers-1. Since Xbox always assigns Kinect to take the 0 index, this line ensures that only the last index (the headset mic) is selected instead.
