BM.prototype.playWithoutFlash. When called, this function tries `inject` function up to 30 times at 1s interval. If failed, `revert` function is called. `inject` sets `_isPlayingWithoutFlash` property to `true`, and tries to inject plugin MIME type, FlashDetect, SoundManager, XHR, and returns boolean if it could successfully inject XHR. XHR callback waits for the URL containing `protocol=rtmp`, replaces it with `httpd`. If the response code is not acceptable, call `revert`. `revert` tries to remove the injection in the reverse order, sets `_isPlayingWithoutFlash` property to `false`, and calls `callback`.
BM.prototype.playWithoutFlash.
When called, this function tries `inject` function up to 30 times at 1s interval. If failed, `revert` function is called.
`inject` sets `_isPlayingWithoutFlash` property to `true`, and tries to inject plugin MIME type, FlashDetect, SoundManager, XHR, and returns boolean if it could successfully inject XHR.
XHR callback waits for the URL containing `protocol=rtmp`, replaces it with `httpd`. If the response code is not acceptable, call `revert`.
`revert` tries to remove the injection in the reverse order, sets `_isPlayingWithoutFlash` property to `false`, and calls `callback`.

kiding/beotsmusic