Search Issue Tracker

By Design

By Design in 6000.5.X

Votes

1

Found in

6000.0.68f1

6000.3.9f1

6000.4.0b9

6000.5.0a7

Issue ID

UUM-134665

Regression

No

No audio is played when Playbable Mixer is changed at runtime

Timeline

-

How to reproduce:
1. Open the attached “IN-134474_AudioBug” project
2. Open the “SampleScene”
3. Enter Play mode
4. Notice audio is playing
5. In the Hierarchy, select “AudioBug” GameObject
6. In the Inspector, “Audio Timeline Bug” component, press the “Switch To Right”
7. Listen to audio output

Actual result: No audio is playing
Expected result: Audio track keeps playing, from the opposite speaker

Reproducible with: 6000.0.68f1, 6000.3.9f1, 6000.4.0b9, 6000.5.0a7
Couldn’t test with: 2023.3.0a2 (Audio track does not work on Timeline)

Reproducible on: macOS 26.3 (M1 Pro), Windows 10 (user)
Not reproducible on: No other environments tested

Notes:
- The issue is not still present after swapping back to the left
- Timeline package version does not affect reproduction

  1. Resolution Note:

    Thank you for reporting a bug to Unity.

    After reviewing the behavior, we've confirmed it aligns with the current design and intended use of the feature. We understand this may differ from your expectations or workflow.

    We will close this case as 'As Designed.' If you have feedback on how the feature could better meet your needs, please let us know - we value your input and consider it in future improvements.

    Audio in a PlayableGraph is processed by the Audio System, which goes through the AudioPlayableOutput and converts Audio playable logic into something that the Audio System can process.
    The result is cached.

    This cache is invalidated only when something changes on the AudioPlayableOutput itself.
    When disconnecting and reconnecting the AudioMixerPlayable the AudioPlayableOutput does not detect any change to its own connection and so doesn't rebuild the Audio.
    You end up with:
    On one side the disconnected Output which is no longer pinged for evaluation
    On the other side the newly connected output which is pinged for evaluation but believes it is not connected to any AudioClip and has nothing to play.

    To switch AudioSource and invalidate the cache you can instead change the Target OR change the Output connection directly.

    [Button]
    public void SwitchToRight()
    {
    audioOutput.SetTarget(right);
    //OR
    leftOutput.SetSourcePlayable(Playable.Null);
    rightOutput.SetSourcePlayable(audioMixerPlayable);
    }

    [Button]
    public void SwitchToLeft()
    {
    audioOutput.SetTarget(left);
    //OR
    rightOutput.SetSourcePlayable(Playable.Null);
    leftOutput.SetSourcePlayable(audioMixerPlayable);
    }

  2. Resolution Note (6000.5.X):

    Thank you for reporting a bug to Unity.

    After reviewing the behavior, we've confirmed it aligns with the current design and intended use of the feature. We understand this may differ from your expectations or workflow.

    We will close this case as 'As Designed.' If you have feedback on how the feature could better meet your needs, please let us know - we value your input and consider it in future improvements.

    Audio in a PlayableGraph is processed by the Audio System, which goes through the AudioPlayableOutput and converts Audio playable logic into something that the Audio System can process.
    The result is cached.

    This cache is invalidated only when something changes on the AudioPlayableOutput itself.
    When disconnecting and reconnecting the AudioMixerPlayable the AudioPlayableOutput does not detect any change to its own connection and so doesn't rebuild the Audio.
    You end up with:
    On one side the disconnected Output which is no longer pinged for evaluation
    On the other side the newly connected output which is pinged for evaluation but believes it is not connected to any AudioClip and has nothing to play.

    To switch AudioSource and invalidate the cache you can instead change the Target OR change the Output connection directly.

    [Button]
    public void SwitchToRight()
    {
    audioOutput.SetTarget(right);
    //OR
    leftOutput.SetSourcePlayable(Playable.Null);
    rightOutput.SetSourcePlayable(audioMixerPlayable);
    }

    [Button]
    public void SwitchToLeft()
    {
    audioOutput.SetTarget(left);
    //OR
    rightOutput.SetSourcePlayable(Playable.Null);
    leftOutput.SetSourcePlayable(audioMixerPlayable);
    }

Comments (1)

  1. Noel_T

    Feb 20, 2026 10:38

    Thank you for that explanation, my only suggestion is that something like this should be added to the scripting api documentation for AudioPlayableOutput, I couldn't find this information anywhere.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.