For anyone interested (thanks to @SpeCterMK & @golddotasksquestions on Reddit) :
The AnimationProcessModes change how often the animationplayer updates it's internal state.
=> PhysicsProcess : it will update at 60 times per second(60hz or 60fps) - use if you move physics bodies with the animationplayer.
=> Idle : updates during idle frames
=> Manual : only updates when you tell it to update with advance( )
The methods:
=> play() : plays the assigned anim from start to finish (you can set some params to specify how it will play) IF it is the first time you play this anim., OR, you just assigned this animation to the player.
If you use stop(false) while the anim is playing, play() wil resume it (continue where you stopped it).
If you use stop(true) while the anim is playing, play() wil start the anim from the first frame again.
=> seek() : sets the player head at a certain position in the animation (eg. half way). You need to use play() to actually start the animation from that point.
If you use seek(true), the visuals will be updated right away.
If you use seek(false), the visuals will only update the moment you have started playing the animation.
If you seek() to the very end of your animation, and you have the animplayer connected to an animation_finished signal, this signal will NOT fire.
=> advance() : behaves like seek(), except that the signal animation_finished WILL fire when you advance() to the end of the animation.
You can use the 3 methods in combination with AnimationProcessModes PhysicsProcess and Idle, but you need to use advance() with Manual (if you want anything to happen =) ).
Note 1 : there is a bug in Godot 3.3 where advancing to the end of an animation doesn't update the visuals (but does fire the signal). Advancing to just before the end of an animation works ok.
Note 2 : there is a bug in Godot 3.4.4 where using stop(true) followed by advancing to the end of an animation is broken (doesn't update the visuals and doesn't fire the signal).