Can I play a oneshot, but not starting right at the beginning of the audioclip?

So I would like to play a oneshot, but have the option of starting not starting at the beginning of the audioclip but sometimes 1 or 2 seconds into it. Is this possible?

I know I could set up a new AudioSource like so to achieve it (not using playoneshot but rather just using play):

GameObject gameObject = new GameObject("one shot audio with offset");
AudioSource audioSource = (AudioSource) gameObject.AddComponent(typeof(AudioSource));
audioSource.clip = theAudioClip;
audioSource.time = timeToStart;
audioSource.Play();
Object.Destroy((Object) gameObject, theAudioClip.length);

However I would prefer not to have to set a up a new audiosource every time I want to play the clip, hence was wondering if it could be done via playoneshot somehow (I have an existing audiosource I could just reuse for all oneshots)?

Any advice appreciated. Thanks.

I personally don’t know any ways to start PlayOneShot at a specific time. Can I ask about your particular use case? Why would you start at a different time?

I see two ways of doing it. You cut the start of your clip, or you do as you did. But if creating a lot of GameObject is an issue, you can use a pooling system.

Sorry just saw this. Thanks for the reply.

Usecase is online multiplayer game. Players lay bombs with a timer. We want bombs to explode on all players screens at the same time so we have a synchronized network time and use that. There is also a sound that plays for a few seconds in the buildup to the bomb exploding. Say there are high pings and a player receives a message that a bomb will explode in 2 seconds, but our buildup sound is 3 seconds long. In a case like this we want to start playing the buildup sound 2 seconds before the end.

And I’ve used object pooling before but didnt think of using it here, that should make it more efficient, thanks.