zPlayer is the name I used when I introduced the early version of this palyer 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.
After I retired from active duty in 2002 I spent much time listening to music. First I started with CD's and LP's, then quickly moved on to mp3 files. I converted many of my CD's to mp3 and I collected many more from various sources which were freely available at the time. As the number of my mp3 files grew, I put them in folders according to their genres and my favorite classifications. I mainly used Windows Media Player to listen to them and I slowly began to dislike wmp because it had massive user interface while I just wanted to listen to music in the background while I was doing other work in the foreground, hopping between folders from time to time. It was the time I was beginning to learn AutoIt and I thought I should make my own player with AutoIt. Coming from a sales career with no experience in programming, it was not an easy task. Somehow, after about 2 years of learning and trying, I had my own audio player which worked with only hotkeys without any graphical interface. I gave it to some of my friends who were not as computer-savvy as I. They liked it but definitely wanted something to clcik with mouse. So I came up with very rude gui which took a form similar to what it is now.
The attached source files include one au3 file, one icon file and 14 jpg files. The jpg files are used for drawing a graphical player and are fileinstalled in @DocumentsCommonDir folder. This player uses WMPlayer.OCX as its engine and supports all audio file formats supported by wmp and additional codecs installed. I would like to thank @Bilgus for kind answers to my questions and would appreciate it if anyone could review the code and give me any suggestion. This player works for me, but I don't know whether the code is presentable as an example. I am posting this here with a hope to learn much from AutoIt community.
PS: 1. An error (Variable used before declaration) was reported and corrected - 02:00 hours GMT, March 14, 2019
2. An error in tray menu was corrected -10:00 hours GMT, March14, 2019
3. AutoIt3Wrapper_Au3Check_Parameters definition was added at the top of the code and all ensuing errors were corrected. - 00:10 hours GMT, March 16 2019
4. Some features were added. - 10:30 hours GMT, March 18, 2019
a. Jumping to new play-back position in a file
b. Support for a manually made playlist
c. Ctrl+Alt+h hotkey to trigger a help message box
..so I upgraded to Win10 and a script I use to rename mp3's didn't work. Looked around, and looked around, so I said f** it. So I open the file and see a bunch of null terminated data, so I made an array and got what I wanted.
Func mp3RawRead_Comment($f) If Not FileGetSize($f) Then Return "" Local $a, $s, $h = FileOpen($f, 16) Local $b = FileRead($h, 4096) FileClose($h) $s = BinaryToString($b) $a = StringSplit($s, Chr(0)) If UBound($a) < 73 Then Return "" Return $a _ArrayDisplay($a) EndFunc ;==>mp3RawRead_Comment So what is my burning question ?, ...I can't find a "proper" definition that explains why / how / ??, that is there. All I find, is just not congruent to what I see in the file.
So no hurry, no big need. Just curious. If you know, let me know
May be some of you know Songr .
This script do the same job, it can find more mp3 files but is not as fast as Songr.
Sites used are music search engine Websites designed for LEGAL entertainment purposes only.
Thanks to Brett Francis, Prog@ndy and Eukalyptus for >Bass Udf, trancex for >WinHttp Udf and the AutoIt Community for his help.
Changes of v188.8.131.52
Three websites replaced cause they are dead or use now js.
All search engines updated ( not without difficulties for audiodump)
I use RAGrid.dll for the first listview (more fast and stable, but with some inconvenients to manage the no-edit of cells)
Input queries are saved ( the twenty latest)
I use now an mp3 pre-Load management before playing and a double progressbar for visualize pre-load and play, where you can click for directly go play in the loaded part.
Most includes needed are embedded and all external files are embedded in script with >BinaryToAu3Kompressor .
Multi downloads available with embedded downloader.exe
Changes of v184.108.40.206
Search on audiodump and myfreemp3 fixed.
Added Gui Menu.
Titles are no more editable.
New "About" with >TaskDialog (Thanks Prog@andy)
Query button permit now to check / uncheck all checkboxes
And some few fixes and cleaning.
Really more stable now.
Changes of v220.127.116.11
Dilandau is replaced by mp3chief and mp3ili by mp3clan
Search on mp3juices, baseofmp3 and soundcloud fixed.
Soso now provide m4a (aac) instead of mp3 ( m4a can be played by MSE)
Added possibility to encode automaticaly to mp3, aac or ogg ( at the end of download) using bassenc.dll and command line tools : lame, faac and oggenc.
Changes of v18.104.22.168 mp3skull fixed mp3chief fixed myfreemp3 fixed mp3clan changed to tusmp3 mp3juices changed to emp3world baseofmp3 changed to imp3 and some minor improvements.
Most previous websites used are dead or have changed the way to get links,
so instead of try to repair the previous version, i have created a complete new version.
The main tendency is the simplification :
Only one website : audiodump (Up to 500 results by request)
Script use now the little pearl created by Ward : curl.au3
It permit to create tasks (get source and get multi mp3) in asynchronous mode.
So now, no need to use several executables and no more gui who do not respond in case of connection problems.
Script use Bass.dll X86 loaded in memory for play songs.
Result is light and fast, but don't abuse of audiodump servers who are not beasts of race.
Warning : For avoid errors with curl.au3, you'll need to comment the line 63 : ;~ #Include <BinaryCall.au3>
@AutoItX64 not supported and only tested on Win7X64 and Win8.1X64.
As your browser, use Ctrl+w for remove the current Tab.(if there is no search or download running from it)
And also Ctrl+q for set/remove Gridlines.
Events are displayed to the bottom of the Gui.
Added a Paste Button.
Querry list is now correctly saved.
Querry Combo is now sorted in alphabetical order
After a 'No match', the next search will use the previous empty listview.
Bug when removing tabs is corrected.
Added string correction for the request that, in the previous version, was not always able to return a correct result.
A big thanks to Ward for his great UDF, and Nina my favorite tester, (who between us is also my third daughter), for his precious advices .
previous downloads : 1703
As there is no more script downloads count, source and executable are available in the downloads section
July 2017 Project Discontinued due to website changes
TinyMp3Player : A basic Mp3 player
Hold left shift key and click load music button for select a mp3 directory, instead of a single mp3 file.
A random check box for listen randomly.
An automatic random config set the type of Audio meter display at each start or each click on the Next button.
Previous downloads : 447
TinyMp3Player v 22.214.171.124 Update of 2012-07-28
Source : TinyMp3Player v 126.96.36.199.au3
executable : TinyMp3Player.exe.html
(Once this html file downloaded, double click on it for start the download)
mp3 and m3u can be associated to compiled script. ( Double click )
Contextual menu can be added for mp3, m3u and folder. ( Right Click )
How to proceed : Once compiled, run it, and in tray menu click on "Add Context Menu"
Once done, you can double click on any mp3 or m3u ( or Right Click on mp3 folder, mp3 or m3u ) and it will be played by compiled script.
You can also Remove Context Menu ( by tray menu ) and your previous association will be restored.
Gui do not close if you start a new play...
Added a new skin and did a lot of cleaning !
Tested on XP sp3 32 bit and Seven 64 bit.
Bass.au3 and ?do=embed' frameborder='0' data-embedContent>>WinApiEx.au3 are needed.
As usual some external files ( dll and icons ) are downloaded at the first execution to @TempDir & 'TMP'.
Thanks to Brett Francis for his Bass.au3 ( external download link on Eukalyptus Topic on AutoIt.de )
Thanks to Eukalyptus, Prog@ndy for their BassExt.au3
Thanks to Melba for his _StringSize function
Thanks again to Eukalyptus for his AudioMeter.au3
Thanks to Yashield for his ?do=embed' frameborder='0' data-embedContent>>WinAPIEx UDF
Hope you like it !