VLC to be my music player - who has made one? How to?

This is for my windows project… I have the MBS plugins. My software uses recording, playback and rate controls.

I have to this point been using the media player and it’s speed feature to playback audio… it often works… but there is a 1 second silence before it changes speed. This is a showstopper for my app. I use the MBS audio foundation tools on the Mac version - and it works great (although i cannot change the input source, or set the Vomiter for recording and Christian obviously is too busy to help out much his customers).

I am hoping to switch to the VLC library, as it plays back every format and also has rate control!

Questions:

  • I tried to open the examples of VLC. None of them worked. I’m dealing with audio only.
  • I know this is a bit - controversial… Do I need only the Dlls and the plugin folder in my application data folder to access the VLC stuff (without my user needing to instal VLC themselves)
  • How easy is it to make a simple player. Does it give: position, rate, volume, play, stop current position. These are all I need.

Rock,
Sean

my VLC examples?
Well you need a VLC.app installed with right bit count (32/64) matching your app.
Than the example copies the libs from VLC app to your app.
Maybe path needs to be updated.

Working without video should work nice. Just don’t assign video output stuff.

I guess that all windows xojo apps are 32bit (at least mine is 2014v1.1)

My experience wasn’t very good. On the Mac side things went pretty good, but on Windows we had a ton of issues from users and pulled VLC and went back to the standard video player. Some Windows users had no issues but a significant number of them did and we could never figure out the cause. Your mileage may vary but I’d approach VLC with caution and do significant testing in Windows.

Yeah - I don’t even know where to start with VLC as the examples don’t work all

I’ve been working on using libvlc, which is the library behind VLC Media Player. It still needs a lot of work but you may find it useful anyway.

When using libvlc, you need to put libvlc.dll, libvlccore.dll, and the plugins directory in the same directory as your executable file. I just copied them directly from VLC’s install folder.

The examples work fine here.

You need a 32-bit VLC copy. The plugin has code to copy the libs to your debug app.
You may need to change the paths and have right VLC variant.
32-bit needs an older version of VLC on Mac, not the current one (64-bit only).

I’ll try adding the dlls in the app and copy them to the executable folder when it runs - I imagine that will take care of debugging.

The documentation on the github site looks promising - they list speed as a single - but then state that 2.5 = 250% faster - so I think it will actually be a double

okay - whats the best way to include the dll’s i my debug file?
I’m running the demo Andrew you suggested
:slight_smile:

Either choose the “Run paused” option and copy the DLLs manually every time, or put the DLLs on the system search path. I put the DLLs in a folder that I added to my search path.

No it’s a Single. The VLC api specifies a variable of type “float”, which is a single-precision floating point number.

where is the system search path - is that system32?

The search path is a global environment variable. It’s the list of directories (including system32) that Windows will look in whenever a program or DLL is requested by name without a path. You edit it in the system properties: http://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/

I put both ddls into system32 … when I run the demo, It gets stuck at this line

If Not libvlc.IsAvailable Then Raise New PlatformNotSupportedException

That means that the DLLs can’t be located. I just tested with system32 and it failed to located the DLLs. Try adding a directory to the path environment variable rather than using system32, or run paused and copy into the build folder.

can you give a example?
say I have a folder called VLC in my app’s appdata folder (in there are the dlls)
i.e. f=specialfolder.applicationData.child(“My App”).Child(“VLC”)

I’d much rather do that than pause and copy as I want to do a whole bunch of testing of different features and trying a whole bunch of ideas out. If I’m dong this means running it at least about 150x and pausing and copying would make me lose the will to live. :slight_smile:

An example of what?

This here…
“Try adding a directory to the path environment variable rather than using system32”

Copy the DLL to the app parent folder next to the exe with a Copy File Step for debugging.

Then when you release, use the installer to do so.

maybe you check the code in the MBS example?
it copies the libs and the modules to the right place in code.