Files
2026-06-04 11:42:34 +02:00

98 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine.Audio;
using UnityEngine.Playables;
namespace UnityEngine.Timeline
{
// Token: 0x0200002C RID: 44
[TrackClipType(typeof(AudioPlayableAsset))]
[TrackClipType(typeof(AudioClip))]
[TrackMediaType(TimelineAsset.MediaType.Audio)]
[Serializable]
public class AudioTrack : TrackAsset
{
// Token: 0x0600019C RID: 412 RVA: 0x00008130 File Offset: 0x00006330
public TimelineClip CreateClip(AudioClip clip)
{
TimelineClip timelineClip;
if (clip == null)
{
timelineClip = null;
}
else
{
TimelineClip timelineClip2 = base.CreateDefaultClip();
AudioPlayableAsset audioPlayableAsset = timelineClip2.asset as AudioPlayableAsset;
if (audioPlayableAsset != null)
{
audioPlayableAsset.clip = clip;
}
timelineClip2.underlyingAsset = clip;
timelineClip2.duration = (double)clip.length;
timelineClip2.displayName = clip.name;
timelineClip = timelineClip2;
}
return timelineClip;
}
// Token: 0x0600019D RID: 413 RVA: 0x000081A0 File Offset: 0x000063A0
internal override Playable OnCreatePlayableGraph(PlayableGraph graph, GameObject go, IntervalTree tree)
{
AudioMixerPlayable audioMixerPlayable = AudioMixerPlayable.Create(graph, base.clips.Length, false);
for (int i = 0; i < base.clips.Length; i++)
{
TimelineClip timelineClip = base.clips[i];
PlayableAsset playableAsset = timelineClip.asset as PlayableAsset;
if (!(playableAsset == null))
{
float num = 0.1f;
AudioPlayableAsset audioPlayableAsset = timelineClip.asset as AudioPlayableAsset;
if (audioPlayableAsset != null)
{
num = audioPlayableAsset.bufferingTime;
}
Playable playable = playableAsset.CreatePlayable(graph, go);
tree.Add(new ScheduleRuntimeClip(timelineClip, playable, audioMixerPlayable, (double)num, 0.1));
graph.Connect<Playable, AudioMixerPlayable>(playable, 0, audioMixerPlayable, i);
playable.SetSpeed(timelineClip.timeScale);
playable.SetDuration(timelineClip.extrapolatedDuration);
audioMixerPlayable.SetInputWeight(playable, 1f);
}
}
return audioMixerPlayable;
}
// Token: 0x0600019E RID: 414 RVA: 0x00008298 File Offset: 0x00006498
internal override void OnCreateClipFromAsset(Object asset, TimelineClip newClip)
{
if (asset is AudioClip)
{
AudioPlayableAsset audioPlayableAsset = ScriptableObject.CreateInstance<AudioPlayableAsset>();
audioPlayableAsset.clip = asset as AudioClip;
newClip.asset = audioPlayableAsset;
newClip.underlyingAsset = asset;
newClip.duration = audioPlayableAsset.duration;
newClip.displayName = (asset as AudioClip).name;
}
}
// Token: 0x17000086 RID: 134
// (get) Token: 0x0600019F RID: 415 RVA: 0x000082F4 File Offset: 0x000064F4
public override IEnumerable<PlayableBinding> outputs
{
get
{
yield return new PlayableBinding
{
sourceObject = this,
streamName = base.name,
streamType = DataStreamType.Audio,
sourceBindingType = typeof(AudioSource)
};
yield break;
}
}
}
}