Whether DOM elements are actually removed when they’re removed from the visible DOM tree is up to browser implementation. This means javascript can’t actually force a DOM element to be garbage collected. It’s up to the browser.
The Core DOM APIs are designed to be compatible with a wide range of languages, including both general-user scripting languages and the more challenging languages used mostly by professional programmers. Thus, the DOM APIs need to operate across a variety of memory management philosophies, from language bindings that do not expose memory management to the user at all, through those (notably Java) that provide explicit constructors but provide an automatic garbage collection mechanism to automatically reclaim unused memory, to those (especially C/C++) that generally require the programmer to explicitly allocate object memory, track where it is used, and explicitly free it for re-use. To ensure a consistent API across these platforms, the DOM does not address memory management issues at all, but instead leaves these for the implementation. — Document Object Model Core
What you can and should do, instead of creating a new player and containing div each time the play button is clicked, reuse the player. See https://jsfiddle.net/kew80vbj/7/ for a basic rewrite of your fiddle using this technique.