Page 1 of 2

MP4 Player & Downloader

Posted: Sat Aug 12, 2017 9:12 am
by JHPJHP

Re: MP4 Player

Posted: Sun Aug 13, 2017 9:48 am
by JHPJHP
This is a companion program to the YouTube Player.
- also updated at the time of this post

Press the [ F4 ] key to save a snapshot of the current frame.

If the thumbnail viewer is open [ F3 ], pressing the [ F4 ] key will create an on-screen thumbnail list, and save a snapshot of the current frame.

-----------------------------------------------------------------------

Updated:
- added Shortcut keys
-- see [ F1 ] Shortcut Menu for changes
- the MP4 player Full Screen icon now controls the PureBasic window
-- double-clicking the window also toggles the Full Screen display on / off

NB*: Included a JavaScript event listener and function that can react to changes to the document title.
- document title can be changed from PureBasic using (DOM) existing code

Re: MP4 Player

Posted: Sun Aug 13, 2017 10:03 am
by gurj
can't Download.

Re: MP4 Player

Posted: Mon Aug 14, 2017 7:53 am
by dige
Well done! Thx JHPJHP

Re: MP4 Player

Posted: Wed Aug 16, 2017 5:38 am
by JHPJHP
Hi dige,

Thank you for the kudos :!:

----------------------------------------------

Figured out the Same-Origin policy for locally loaded MP4 files (does not apply to URLs).

Updated:
- switch around some Shortcut keys (see the [ F1 ] menu for changes)
-- press the [ F3 ] key to open the thumbnail viewer
-- press the [ F4 ] key to save a snapshot of the current frame

If the thumbnail viewer is not open and the [ F4 ] key is pressed, a full snapshot is saved (also works with URLs).
- this uses an API hack, while the thumbnail snapshot solution should work in a cross-platform application

NOTE: While the Shortcut Menu and Thumbnail List cannot be viewed in Full Screen, there is a simple fix, but it would require writing custom controls.

Re: MP4 Player

Posted: Wed Aug 16, 2017 6:53 am
by uweb
Fine!
Thank you.
But it looks like it don't like special characters (i.e. ä, ö, ü, ß) in filenames.

Re: MP4 Player

Posted: Thu Aug 17, 2017 12:37 am
by JHPJHP
Hi uweb,

Thank you for the information; problem fixed.
- included the following MIME Type: <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

----------------------------------------------------

Updated:
- added a new Command Parameter
-- ThumbnailRatio / TR (default: 0.25)

NOTE: The PureBasic WebGadget supports using the <video> element with MP4 files.
- if the file is loaded locally, the Same Origin Policy can be bypassed
-- available JavaScript Functions: toBlob(), toDataURL(), and getImageData()

Re: MP4 Player

Posted: Sat Aug 19, 2017 2:03 am
by JHPJHP
Cross-Origin Resource Sharing (CORS) now available for both locally loaded MP4 files and URLs.

Updated:
- expanded the snapshot Procedure (CORS)
- added a Splash window
- added a Load window (replaced OpenFileRequester)
- added URL load progress to the Titlebar and Taskbar button
- applied some code improvements and bug fixes

NOTES:
- press the [ F1 ] key to open the Shortcut Keys Menu
- press the [ F2 ] key to load an MP4 file
- press the [ F3 ] key to open the Thumbnail Viewer
- press the [ F4 ] key to save frames
-- image size is configurable (defaulted to 25% of original video size)
-- if the Thumbnail Viewer is not open, frames are still saved, but thumbnails are not added to the viewer
- enter Full Screen from the onboard controls (includes a zoom button if black bars are visible)
- the Shortcut Keys Menu and the Thumbnail Viewer cannot be opened in Full Screen

Re: MP4 Player

Posted: Sat Aug 26, 2017 3:41 am
by JHPJHP
Updated:
- added 2 Command Parameters
-- SaveVideo (default #True)
-- PlayerOnly (default #False)
- fixed the Save Snapshot feature for local videos
- applied a few code improvements

SaveVideo:
When a video is downloaded from a URL it will auto-save to the local drive. A URL with a video of the same name will be ignored, and the local video will be played instead.
- this setting is ignored if the video file is greater then 250MB
- this setting is ignored when the PlayerOnly option is enabled

PlayerOnly:
Enabling this option will disable the Thumbnail Viewer and Save Snapshot feature, but loading videos from the internet will play without first having to be fully downloaded.

NB*: The YouTube Player was also updated.

--------------------------------------------------------------------------------

Update Reposted:
- added a Progressbar when downloading from a URL
- squashed some bugs

I don't think anyone will use this as an MP4 player, but the techniques used to communicate between PureBasic and JavaScript via the WebGadget, should put to rest most concerns that the WebGadget is obsolete. Quite the opposite, IMHO it is the most powerful Gadget PureBasic has to offer.
- Embed JS into PureBasic, Geolocation: Google Maps, YouTube Player, MP4 Player, Barcode Generator

NB*: Previous update would crash the program when loading non-playable MP4 files.

Re: MP4 Player

Posted: Sat Aug 26, 2017 9:23 am
by IdeasVacuum
I am sure people will use it, it's an excellent Player JHPJHP.
You have coded some very nice features throughout, making it a good tutorial too. 8)

Re: MP4 Player

Posted: Tue Aug 29, 2017 5:21 am
by JHPJHP
Hi IdeasVacuum,

Providing examples as learning tools was one of the main reasons I started posting code to the PureBasic forum.

Thank you for your kind words.

Re: HTML5 MP4 Player

Posted: Thu Jan 03, 2019 3:54 am
by JHPJHP
Updated:
- squashed a bug

I noticed a problem a couple weeks ago where a video was downloaded, but the player reported it as an unsupported format.

Until I had time to look at the issue and to avoid disabling the download link, I included a copy of the online video into the download package. This bypassed the problem by playing the local copy, but increased the download size by over 20 MB.

NB*: The problem occurred because I was removing the download reference (revokeObjectURL) before the player had time to use it.

Re: HTML5 MP4 Player

Posted: Thu May 23, 2019 5:38 pm
by JHPJHP
Updated:
- made a couple small changes to the code

NOTE: Make sure to check out the Thumbnail Viewer [ F3 ]; save snapshots of the current frame [ F4 ].

NB*: Press [ F1 ] to see all the available options (i.e. COMMAND PARAMETERS: ThumbnailRatio).

Re: MP4 Player & Downloader

Posted: Fri Oct 04, 2019 9:51 pm
by JHPJHP
Updated:
- added a thumbnail player
- squashed a couple bugs

Thumbnail Player
When the main window (MP4 Player) is minimized, a thumbnail version of the player opens in a corner of the screen.
Pressing the [ F8 ] key slides the thumbnail player to a different corner of the screen.

Re: MP4 Player & Downloader

Posted: Fri May 29, 2020 6:09 am
by JHPJHP
Updated:
- improved various parts of the code
- squashed a couple bugs