Skip to main content
Version: 2.x

Class OdinDecoder

Wrapper class of OdinNative.Wrapper.MediaDecoder for Unity (requires AudioSource)

This convenient class provides predefined helper functions to cover default use cases where the voice chat needs to work with AudioSource, AudioClip, AudioMixer, ...

Default Unity GameObject altering functions:

Declaration
[HelpURL("https://docs.4players.io/voice/unity/next/api/OdinNative.Unity/OdinDecoder/")]
[AddComponentMenu("Odin/Instance/OdinDecoder")]
[RequireComponent(typeof(AudioSource))]
public class OdinDecoder : MonoBehaviour, IMedia

Inheritance: System.Object -> UnityEngine.Object -> UnityEngine.Component -> UnityEngine.Behaviour -> UnityEngine.MonoBehaviour

Implements:
OdinNative.Wrapper.Media.IMedia

Properties

OutSampleRate

Playback samplerate reported by Unity, or OdinNative.Unity.OdinRoom.DefaultSampleRate when the Unity audio engine is disabled.

Declaration
public int OutSampleRate { get; }

OutChannels

Gets the playback channel count derived from AudioSettings.speakerMode, clamped to stereo (1 or 2).

Declaration
public int OutChannels { get; }

Parent

The peer that owns this decoder. Set by OdinNative.Unity.OdinPeer.AddDecoderComponent(UnityEngine.GameObject,System.UInt64,System.Boolean) and used as the abstraction boundary — allows swapping the native wrapper for a web bridge without changing SDK components.

Declaration
public IPeer Parent { get; }

Id

Odin media id

Declaration
public ulong Id { get; }

MediaDecoder

Media reference

Declaration
public MediaDecoder MediaDecoder { get; set; }

SpatialBlend

Property of AudioSource

Declaration
public float SpatialBlend { get; set; }

RolloffMode

Property of AudioSource

Declaration
public AudioRolloffMode RolloffMode { get; set; }

MinDistance

Property of AudioSource

Declaration
public float MinDistance { get; set; }

MaxDistance

Property of AudioSource

Declaration
public float MaxDistance { get; set; }

Activity

Media activity state flag

Declaration
public bool Activity { get; }

ChannelMask

Declaration
public Utility.ChannelMask ChannelMask { get; }

Position

Server side position

Declaration
public NativeBindings.OdinPosition Position { get; }

Fields

Playback

Actual Unity audio output component

Declaration
public AudioSource Playback

Room

The OdinNative.Unity.OdinRoom this decoder belongs to

Declaration
public OdinRoom Room

PeerId

The peer id this decoder plays back audio for

Declaration
public uint PeerId

AudioMixerGroup

Unity mixer

Declaration
public AudioMixerGroup AudioMixerGroup

OnActiveStateChanged

Trigger on OdinNative.Unity.OdinDecoder.Activity changed

Declaration
public MediaActiveStateChangedProxy OnActiveStateChanged

AutoDestroyAudioSource

Flag for destroy OdinNative.Unity.OdinDecoder.Playback linked AudioSource

Declaration
public bool AutoDestroyAudioSource

AutoDestroyMediaStream

Flag for dispose of OdinNative.Unity.OdinDecoder.MediaDecoder

Declaration
public bool AutoDestroyMediaStream

Methods

GetPipeline()

Get native effect pipeline

Declaration
public MediaPipeline GetPipeline()
Returns

OdinNative.Wrapper.MediaPipeline: managed effect pipeline

AddApm()

Declaration
public virtual OdinApmComponent AddApm()
Returns

OdinNative.Unity.Audio.OdinApmComponent

AddVad()

Declaration
public virtual OdinVadComponent AddVad()
Returns

OdinNative.Unity.Audio.OdinVadComponent

AddVi()

Declaration
public virtual OdinViComponent AddVi()
Returns

OdinNative.Unity.Audio.OdinViComponent

AddVolumeBoost()

Declaration
public virtual OdinVolumeBoostComponent AddVolumeBoost()
Returns

OdinNative.Unity.Audio.OdinVolumeBoostComponent

AddMute()

Declaration
public virtual OdinMuteAudioComponent AddMute()
Returns

OdinNative.Unity.Audio.OdinMuteAudioComponent

AddEffect<T>()

Declaration
public T AddEffect<T>() where T : MonoBehaviour, IOdinEffect
Returns

<T>

Type Parameters
  • T

AddEffect<T>(T)

Declaration
public T AddEffect<T>(T effect) where T : MonoBehaviour, IOdinEffect
Returns

<T>

Parameters
TypeName
<T>effect
Type Parameters
  • T

AddEffect<T>(UnityAction<OdinTArray<float>, bool, T>, T)

Declaration
public CustomEffect<T> AddEffect<T>(UnityAction<NativeBindings.OdinTArray<float>, bool, T> callback, T userData) where T : unmanaged
Returns

OdinNative.Wrapper.Media.CustomEffect<T>

Parameters
TypeName
UnityEngine.Events.UnityAction<OdinNative.Core.Imports.NativeBindings.OdinTArray<System.Single>,System.Boolean,<T>>callback
<T>userData
Type Parameters
  • T

SetDecoder(MediaDecoder)

Declaration
public void SetDecoder(MediaDecoder decoder)
Parameters
TypeName
OdinNative.Wrapper.MediaDecoderdecoder

GetPosition()

Get unity translated 3d vector from OdinNative.Core.Imports.NativeBindings.OdinPosition to use the Quaternion and the Matrix4x4 classes for rotating or transforming vectors and points

Declaration
public Vector3 GetPosition()
Returns

UnityEngine.Vector3: A new vector with given x, y, z components.

ReadOdinAudioData()

Declaration
public virtual void ReadOdinAudioData()

GetFrameBufferSize()

Declaration
public virtual float GetFrameBufferSize()
Returns

System.Single

CheckResetFrameBuffer(float)

Declaration
public virtual void CheckResetFrameBuffer(float audioBufferSize)
Parameters
TypeName
System.SingleaudioBufferSize

SetAudioSourcePtich(float)

Forward for the previous misspelled name

Declaration
[Obsolete("Renamed to SetAudioSourcePitch")]
public void SetAudioSourcePtich(float audioBufferSize)
Parameters
TypeName
System.SingleaudioBufferSize

SetAudioSourcePitch(float)

Declaration
public virtual void SetAudioSourcePitch(float audioBufferSize)
Parameters
TypeName
System.SingleaudioBufferSize

SetAudioClipData()

Declaration
public virtual void SetAudioClipData()

Implements