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​