Ystok-Media is a Common Lisp GUI library based on the LispWorks® CAPI and COM/Automation API (capi:ole-control-pane). It allows to embed a media player window with playback functions into your Windows application.
The current version supports the following ActiveX implementations.
No dependencies.
Ystok-Media relies on CAPI, COM,
SYSTEM, and LISPWORKS packages.
Ystok-Media works only on
LispWorks for Windows.
The source code was tested on LWW version 7.1.
Actually only video and photo files have been played but not audio files.
None. Only comments inside source code are available.
Here is change.log.
The source code of Ystok-Media is available from
http://lisp.ystok.ru/ymedia/ymedia-1-0-005.zip.
The distribution package contains
Just unpack and load defsys.lisp into the LispWorks Editor.
There is yplayer.exe, an off-the-shelf Windows application demonstrating
media player functions. It is packed into the
http://lisp.ystok.ru/ymedia/yplayer.zip.
Usage:
yplayer.exe [-log]
In LispWorks IDE, all the evens are fired.
The delivered application almost works as expected but some events are never invoked. For example, the following are never fired:
The delivery level does not matter.
capi:ole-control-paneWhen looping through the playlist, WMP ActiveX component automatically tries to resize the container according to the native size of each media. And the "stretchToFitquot; property does not work properly.
Several Visual Basic, MS Access and other forums suggest a solution. Someone noted that the container should restore bounds itself like this:
FOleInplaceObject <> nil then FOleInplaceObject.SetObjectRects (rect, rect)
But capi:ole-control-pane seems not to have a possibility to
fix the component internal
size.
As as result, the "stretchToFit" property does not work properly.
The only (ugly) workaround is to force resizing the pane a bit on some events.
My %wmp-resize function is based on the following suggestions:
https://lavag.org/topic/8596-windows-media-player-size-on-load/