98 lines
3.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|