### Godot version

v4.0.beta17.official [c40020513]

### System information

Windows 11 Pro

### Issue description

In AnimationPlayer, Audio Playback Track does not work in the middle of playback, as in v3.5.1.stable.official [6fed1ffa3]

### Steps to reproduce

(Do on both versions)
Add root node -> Node
Add AnimationPlayer and AudioStreamPlayer
![image](https://user-images.githubusercontent.com/91904840/216308659-d0327455-73e9-48d6-93b3-b33f4c8f1ccc.png)

Add new animation, Add Audio Playback Track
Drag & Drop audio test.ogg on track with a time offset of 1
![image](https://user-images.githubusercontent.com/91904840/216308947-391718d9-1e9c-4418-9f82-3cc9b6075cff.png)

Play animation before the start of the track, at the beginning of the track and somewhere during the track (turn on the sound)

v 3.5.1

https://user-images.githubusercontent.com/91904840/216314742-80982bb9-23a3-4eb5-8e98-249c3531aa66.mp4

v 4.0.beta17


https://user-images.githubusercontent.com/91904840/216314798-23f212f2-c386-4dc1-8946-648e5f8f2467.mp4




You'll notice, that on version 4.0.beta17 Audio Playback Track does not work in the middle of playback!




### Minimal reproduction project

Normal playback
[godot_3.5.1.zip](https://github.com/godotengine/godot/files/10568517/godot_3.5.1.zip)

Cracked playback
[godot_4.0.beta17.zip](https://github.com/godotengine/godot/files/10568519/godot_4.0.beta17.zip)

for (const AnimationNode::AnimationState &as : state.animation_states) {
			Ref<Animation> a = as.animation;
			double time = as.time;
			double delta = as.delta;
			real_t weight = as.blend;
			bool ed = as.ed;
			Animation::LoopedFlag looped_flag = as.looped_flag;
			bool is_external_ing = as.is_external_ing;
			bool backward = signbit(delta); // This flag is used by the root motion calculates or detecting the end of audio stream.
#ifndef 
			bool calc_root = !ed || is_external_ing;
#endif // 
			for (int i = 0; i < a->get_track_count(); i++) {
				if (!a->track_is_enabled(i)) {
					continue;
				}
				NodePath path = a->track_get_path(i);
				if (!track_cache.has(path)) {
					continue; // 
				}
				TrackCache *track = track_cache[path];
				ERR_CONTINUE(!state.track_map.has(path));
				int blend_idx = state.track_map[path];
				ERR_CONTINUE(blend_idx < 0 || blend_idx >= state.track_count);
				real_t blend = (*as.track_blends)[blend_idx] * weight;
				Animation::TrackType ttype = a->track_get_type(i);
				if (ttype != Animation::TYPE_POSITION_3D && ttype != Animation::TYPE_ROTATION_3D && ttype != Animation::TYPE_SCALE_3D && track->type != ttype) {
					//
					continue;
				}