### 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)

TrackCacheMethod *track_method = memnew(TrackCacheMethod);
						if (resource.is_valid()) {
							track_method->object = resource.ptr();
						} else {
							track_method->object = child;
						}
						track_method->object_id = track_method->object->get_instance_id();
						track = track_method;
					} break;
					case Animation::TYPE_BEZIER: {
						TrackCacheBezier *track_bezier = memnew(TrackCacheBezier);
						if (resource.is_valid()) {
							track_bezier->object = resource.ptr();
						} else {
							track_bezier->object = child;
						}
						track_bezier->subpath = leftover_path;
						track_bezier->object_id = track_bezier->object->get_instance_id();
						track = track_bezier;
						if (has_reset_anim) {
							int rt = reset_anim->find_track(path, track_type);
							if (rt >= 0 && reset_anim->track_get_key_count(rt) > 0) {
								track_bezier->init_value = (reset_anim->track_get_key_value(rt, 0).operator Array())[0];
							}
						}
					} break;
					case Animation::TYPE_AUDIO: {
						TrackCacheAudio *track_audio = memnew(TrackCacheAudio);
						track_audio->object = child;
						track_audio->object_id = track_audio->object->get_instance_id();