/** * Executes an audio track with the given player and volume. * @param listener A listener for track state events * @param track The audio track to execute * @param configuration The audio configuration to use for executing * @param playerOptions Options of the audio player */ public void executeTrack(TrackStateListener listener, InternalAudioTrack track, AudioConfiguration configuration, AudioPlayerOptions playerOptions) { final AudioTrackExecutor executor = createExecutorForTrack(track, configuration, playerOptions); track.assignExecutor(executor, true); trackPlaybackExecutorService.execute(() -> executor.execute(listener)); }