Jump to content

zPlayer - My own little audio/video player

Recommended Posts

  • Replies 119
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

zPlayer is the name I used when I introduced the early version of this player in my blog back in early 2009 and, therefore, has nothing to do with the mobile media player of the same name which starte

It's great to see that you did it. I enjoyed helping you help your dad. Cheers to you and your daddy! GUICtrlSetFont(-1, $vcWidth/8, 900) I like this. Good job!

I have my "final" version!  (yes, I know what a joke that is . . .) It works and my dad can Play-Paus easily with the giant button filling most of the 10.1" display on his tablet.  Here is the cu

Posted Images

As @Jon is often around these days, maybe it would be a good thing if he could read these last posts because those 2 strange features didn't exist in

Also I tried (very temporarily) to replace IE.au3 from with IE.au3 from, hoping it may bring some clues but it didn't. The 2 strange phenomenons you described in your last posts were still happening (in no matter the version of IE.au3 was installed.

Link to post
Share on other sites
Posted (edited)

Version was released today.

1. Fixed code broken by newly released AutoIt stable version v3.3.16.0. An error occured at line #428 (While $oPlayer.playState <> $iPlaying) which meant that the WMP object was not duly created. It was solved by replacing _IEAction ($myIE_Obj, "refresh") with _IEAction ($myIE_Obj, "scrollintoview") in MyWMPlayer() function. Thanks go to @pixelsearch for his help in finding the cause.
2. Redundant re-creation of shell.application object in MyFileProperties() function was eliminated.

Edited by CYCho
Link to post
Share on other sites
23 hours ago, CYCho said:

It was solved by replacing _IEAction ($myIE_Obj, "refresh") with _IEAction ($myIE_Obj, "scrollintoview") in MyWMPlayer() function

It was found that _IEAction ($myIE_Obj, "refresh") was not necessary to start with.

 Version was released today, with this line deleted.

Link to post
Share on other sites
Posted (edited)

Version was released today. I implemented resizing of video in a Windows Media Player ActiveX control. This was made possible by using SetObjectRects method as demonstrated by @MattyD in his recent post. Previously WMP was embedded in an Internet Explorer HTML document and I was worried of IE being not supported by Windows.

Edited by CYCho
Link to post
Share on other sites
  • 2 weeks later...

Version was released today.

When a video was paused while being played in maximized (not full screen) window, the image would shrink to a certain size smaller than the GUI for an unknown reason. _ResizeWMP() was added at the end of MyPause() function as an ad hoc measure. This brings the image back to normal size, but there is a short flicker while resizing the image. This problem remains to be solved in the future.

Link to post
Share on other sites
  • 1 month later...

With zPlayer I get no sound on Windows 10 Pro x64... and bad trap: if I come across a video that the payer cannot play, I can only exit the payer and delete Folder= in the *.ini, or it tries play the file over and over again.

Link to post
Share on other sites

@Bitnugger, thank you for sharing your experience with zPlayer. I feel sorry to hear that you are having a trouble running it. zPlayer can play back all file types which can be played back by Windows Media Player in your computer. If a certain file type cannot be played back, appropriate codec should be installed. For me, I installed K-Lite codec pack and I've had no problem encountered so far. Could you please let me know what type of file you were trying to play back?

Link to post
Share on other sites

I have "Shark007 STANDARD Codecs" installed.
With VLC or Windows Media Player I can also play MP4/MKV or x264/x265 files.
See picture... I can play it with Windows Media Player. With zPlayer, I have sound, but no picture.


Link to post
Share on other sites
Posted (edited)


I tried to duplicate your experience, but I couldn't. If the file you tested is freely available for download, please give me its URL so that I can do the test with that particular file. In the meantime you can delete the playlist in that folder and try with other folders which have other video files and see if it works.

Edited by CYCho
Link to post
Share on other sites
Filetype                    | Windows Media Player  | zPlayer
TearsOfSteel_720p_h265.mkv  |       OK              | Only Audio
video-h264.mkv              |       OK              | OK
video-h265.mkv              |       OK              | Only Audio
video-mpeg2.mkv             |       OK              | Only Audio
video-vp8-webm.mkv          |       OK              | OK


If there are several files in the directory and the playback window is closed with the Close button, zPlayer then plays the last opened file again. Correct would be the next file in the list.

Link to post
Share on other sites
Posted (edited)
2 hours ago, Bitnugger said:

If there are several files in the directory and the playback window is closed with the Close button, zPlayer then plays the last opened file again. Correct would be the next file in the list.

You are right. If you have multiple files in the playlist and if a video window is closed, zPlayer should move to the next file. This function is performed by lines 633 and 652 of zPlayer.au3. I cannot figure out how it could work differently.

Edit: The files 2 thru 5 have different names but their contents are identical, Any chance this may give the impression that zPlayer did not move to the next file?

Edited by CYCho
Link to post
Share on other sites
Posted (edited)

It was because of the Shark007 STANDARD codecs!

I installed the K-Lite Codecs on another PC to test it and it works.


Edit: It was because of my stupidity! I totally overlooked the fact that I hadn't installed any Shark007 codecs for 32 bits. That hurts...
Now it also works with Shark007 codecs.

Edited by Bitnugger
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By CYCho
      This file includes the source code for zPlayer, which is a stand-alone, simple, intuitive and easy-to-use, yet fully functional media player.  I made this to suit my purpose and you can tweak it to your taste. The source code is only about 1600 lines and only standard #include files were used. Also included in the source code file are some image files which are used for drawing the graphical media controls in the main window.
      As of its release date, the compiled exe file of this player, as attached hereto, is not flagged by Windows Defender with latest Security Intelligence Update.
      Hash values for compiled file of the latest version are as follows:
      SHA256: B21A386B916175FB05639BACC398812BE6CEB1B02E463585EA900E329A596A5D
      SHA1: 3AAAFF9B3E8D4FC5FE3D27C49241C23C0C9DF654

      This player has the following features:
      - Play back all formats of media files which can be played back by the Windows Media Player in your computer
      - Depending on the file types specified by the user in zPlayer.ini file this player can be either audio only, video only or both.
      - Video window is independent of other windows and, when maximized, increases the immersion of the user
      - Graphical media controls similar to embedded Windows Media Player
      - Forward, backward, pause, repeat, shuffle function
      - Increase/decrease/mute sound volume
      - Change folders and create playlist for all media files in that folder and its subfolders, and support for manually-made playlists
      - Save play-back environment when terminating and resume that environment when restarting
      - 'Continue playback' option for a file you left off in the middle of playback
      - With one click, you can see internet search results for the file selected in playlist
      - With a double-click, you can play back an item in the playlist
      - Search strings in the playlist
      - Option to see long file names including folder names
      - View file properties for any file in the playlist and copy their values
      - Resize the playlist and video windows, and restore them to their default positions
      - Very small footprint: very low CPU and memory usage, with only about 1MB when compiled
      - You can even hide all the windows and manipulate the player with hotkeys only
      Note: zPlayer is the name I used when I introduced the early version of this player in my blog back in early 2009 and, therefore, has nothing to do with the mobile media player of the same name which started marketing in 2015.
    • By PeterVerbeek
      In this post I take the opportunity to show the awesome capabilities of AutoIt and its libraries. My open source project Peace is a long running AutoIt based app located on SourceForge. It provides users with a system-wide equalizer and effects machine. It's an interface using the power of Equalizer APO, an audio processing object software. Peace has been download over 2,600,000 times by various kind of users. Amongst others it gives them possibilities like these:
      Hearing impaired - Amplify the gain of frequencies which are impaired. Home Theatre - Create Equalizer presets for watching movies and listening to music. Music lovers & audiophiles - Create presets for listening to music on their high quality speakers and headphones. Gamers - Enhance frequencies to get an edge over other gamers. Headphones - Improve the sound quality of cheap headphones and get the max out of expensive ones. Bass lovers - Boost low frequencies for extra bass. Voice - Make a microphone sound better and improve the voice, for instance for YouTube usage. Low audio - Boost low audio of an input source to a comfortable level. This list covers the main needs of the Peace user. Many people have contacted me over the years asking for new features and telling me how they use Peace for their (sometimes specific) needs.  I was able to use AutoIt and its libraries for all of their needs. So what are the main features of Peace?
      Equalize your computer audio by using up to 31 sliders. Support of equalizing 9 speakers : left/right, center, subwoofer, left/right rear, left/right side. Per slider a filter can be chosen such as peak, low/high pass, shelving. The graph windows shows your equalization so you see exactly what you're doing. Apply an effect such as crossfeed simple/Jan Meier/Chu Moy, stereo balance, bass/treble, upmix/downmix, channel routing. Save presets (called configurations) and activate by mouse click, hotkey, desktop shortcut or Peace system tray. Select a target device to equalize, microphone as input can also be equalized. Automate: you can let Peace automatically activate presets on a switch to another device and another process. Peace is available in these languages: English, Czech, Deutsch, Français, Italiano, Nederlands, Pусский, Українська So who am I? I'm a Dutch programmer who happens the stumble upon AutoIt 5 years ago and created a small Equalizer interface app of less than 400 program lines with it. Nowadays Peace has grown to more than 18,000 lines as many features were added. Although Peace is open source, the program code isn't of the best possible quality. The reason being that I didn't expect it to become so popular. It caught me by supprise. I've created a Library of functions called Pal (link to forum post) which quality is up to the AutoIt community standard as counterpart to the Peace program code.
      I want to state here that AutoIt is a mature program language as Peace obviously shows. I wish it to be used more extensively for professional or semi-professional apps. In my view AutoIt deserves a place amongst the major programming languages for Windows computers.
      Peter Verbeek

    • By nacerbaaziz
      hello autoit team
      please i need your help
      i found that the youtube provide a way to get any video informations with this link
      but it incoded i can not read it
      can any one tell me how to decode that please?
    • By nacerbaaziz
      goodmorning; autoit team
      please their are any youtube search way working?
      because i was using the get source and split it to get the result but know it does not working any way.
      is the youtube disabled that? and is their any other simple way to do that?
      i tested all examples found in this post but also it don't work
      and here is the example that i use to and it don't work any more
      local $hSearchOpenHNDL, $hSearchConnect, $sSearchGet local $a_UrlsArray[1][5] local $b_ButtonsDisabled = false, $b_SearchBTNFocus = false, $b_SearchListFocus, $h_SearchFocusHND local $Return = "0" local $s_OpenStringY = "/feed/trending" local $ChannelUrl = "", $channelName = "" if Not ($a_YoutubeSearchArray[0][0] = 0) then GUICtrlSetData($searchInp, $s_youtubeSearchLastSearch) $s_OpenStringY = "/results?search_query=" & StringReplace(GUICtrlRead($searchInp), " ", "+") $a_UrlsArray = $a_YoutubeSearchArray for $i = 1 to $a_UrlsArray[0][0] _GUICtrlListBox_AddString($SearchList, $a_UrlsArray[$i][0] & $a_UrlsArray[$i][2] & $a_UrlsArray[$i][3]) next _GUICtrlListBox_SetCurSel($SearchList, $I_youtubeSearchLastIndex-1) GUICtrlSetState($SearchList, $GUI_focus) else if Ping("youtube.com", 1000) > 1 then $hSearchOpenHNDL = _WinHttpOpen('') if not (@Error) then $hSearchConnect = _WinHttpConnect($hSearchOpenHNDL, "youtube.com") if Not (@Error) then $sSearchGet = _WinHttpSimpleRequest($hSearchConnect, "get", $s_OpenStringY) if not (@Error) then local $a_strings = _StringBetween($sSearchGet, '<a href="/watch', "<ul") local $title = "" local $url = "" local $length = "" local $result = "" GUICtrlSetData($SearchList, "") ReDim $a_UrlsArray[1][5] for $i = 0 to UBound($a_strings)-1 $url = _StringBetween($a_strings[$i], "?", '"') if @error then ContinueLoop $url = "https://www.youtube.com/watch?" & $url[0] $title = _StringBetween($a_strings[$i], 'dir="', '</a>') if @error then ContinueLoop $title = $title[0] $title = StringRegExpReplace($title, '(.*\"\>)', "") if StringRegExp($a_strings[$i], '[0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}', 0) = 1 then $length = StringRegExp($a_strings[$i], '[0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}', 2) elseIf StringRegExp($a_strings[$i], '[0-9]{1,2}\:[0-9]{1,2}', 0) = 1 then $length = StringRegExp($a_strings[$i], '[0-9]{1,2}\:[0-9]{1,2}', 2) else $length = "" endIf if IsArray($length) then $length = ": (" & $length[0] & ")" else $length = "" endIf $ChannelUrl = stringRegexpReplace($a_strings[$i], '(^.*?<a.*?\"(\/user|\/channel))+', "$2") $channelName = stringRegexpReplace($ChannelUrl, '(.*?\".*?>)(.*</a>)+', "$2") $ChannelUrl = stringRegexpReplace($ChannelUrl, '(\".*)+', "") $channelName = stringRegexpReplace($channelName, '(</a>.*)+', "") $result &= $title & @crlf & $url & @crlf ReDim $a_UrlsArray[UBound($a_UrlsArray)+1][5] $a_UrlsArray[UBound($a_UrlsArray)-1][0] = $title $a_UrlsArray[UBound($a_UrlsArray)-1][1] = $url $a_UrlsArray[UBound($a_UrlsArray)-1][2] = $length if not ($channelName = "") then $a_UrlsArray[UBound($a_UrlsArray)-1][3] = ", (" & $channelName & ")" if not ($channelUrl = "") then $a_UrlsArray[UBound($a_UrlsArray)-1][4] = "https://www.youtube.com" & $channelUrl $a_UrlsArray[0][0] = UBound($a_UrlsArray)-1 _GUICtrlListBox_AddString($SearchList, $a_UrlsArray[UBound($a_UrlsArray)-1][0] & $length & $a_UrlsArray[UBound($a_UrlsArray)-1][3]) next endIf endIf endIf endIf endIf  
      i hope any one can help me
      thanks in advance
    • By ripdad
      This is a project that I have been working on for several months off and on.
      It's a simple "What You Hear" MP3 @ 320Kbps and WAV audio recorder.
      - LoudMax, a Gain Controller and Look-Ahead Limiter
      - Auto Shut-Off after one minute of silence
      - Side-by-Side Simulated LED Meter
      - Running Time Counter
      It started off being a large project, but I eventually stripped it down to its
      bare essentials because I came to realize that it would be very difficult to
      deal with every sound card and every way a PC is set up for audio. It would
      have been a nightmare that I was not willing to go through.
      This project contains the most up-to-date BASS.dll v. - December 17, 2019.
      All BASS Dll's are 32bit. Those and the needed UDF's are included in the zip file.
      I will try to explain how it works in the next post.

      BASS VST Recorder v1.1.zip
  • Create New...