I am an electrical engineering student at the University Of Indonesia. I
developed this program under Delphi language. It started on August, 2002. At
first time, I do it in an attempt to learn more about programming ActiveX
control. I choose to make a video player application because it is relatively
easy to implement on Delphi, just use a TMediaPlayer component and I'm ready to
go (although the current implementation of this program no longer use
TMediaPlayer).
Why Winamp?? It's much more like a tricky question for me..
I know that there’s already some winamp plugin for playing videos. I also heard
that the new Winamp 3 already have a built-in support for video file. Well, at
first implementations, I actually didn't use winamp at all. (except for hearing
mp3s while coding :) So, I actually didn't plan on competing my program with
those available plugins.
I just use Internet Explorer to test my ActiveX control. But, later I found that
this program got more exciting than I had thought. So I think it should have a
better interface so that I could use it just like normal applications, i.e.
don't have to open the IE browser every time I want to see the program, and no
more annoying toolbar.
After running through some alternatives, including making my own browser for
container, or get over the ActiveX programming and convert the program to a
standard application, I pick an ultimate choice: Winamp Minibrowser. The reason
is that it already have a good look as a container and I don't have much talent
on designing user interface. By using winamp, I don't have to design my own UI
so I can concentrate more on my program.
My next task is to integrate the ActiveX control with winamp, so that I can use
winamp's control to drive my application.
Before improving my program, I decided to make the integration first. So I make
a winamp input plugin, which looks suitable for this purpose. By using the
plugin, I can register the types of file that my program can handle, I can make
winamp automatically open the minibrowser and launch my program on detecting
these files, and winamp's control can be used to drive my program. Except for
volume and balance adjustment, which got me into much trouble before I can make
it work. In fact, there are some hidden features in the plugin which you may
find useful, as described somewhere else in this documentation.
Please send any question, comments, bug reports, or suggestions for
improvement to [ indra21@programmer.net
] or use the feedback section of this site.
Note : You can also visit [
http://www.winamp.com/plugins ] to find the latest version of this plugin.
Copyright (c) 2004
Indra Pramana,
The source code for the component used by this program (TMCIWndPlayer, and
TDSPlayer) is available. Please note that it has a very limited documentation.
I'm not too good on maintaining code clearability. Even all other written
document like the readme and this document is composed after about 2 months
absent on improving the source code. I just made them so that I can publish the
program somewhere (even though it's not completely finished yet).
The component includes additional features introduced by the program, such as
zooming, panning, aspect-ratio correction, etc. TDSPlayer also shows how to use
the new Video Mixing Renderer (VMR). It builds on a special class that wraps VMR
and the original Video Renderer in an identical interface, so that their method
and properties can be called by the same interface, regardless of using VMR or
the original Video Renderer. Also, TDSPlayer is an incomplete component, since I
made it from scratch, some method and properties which didn't got used by the
program is still in blank implementation (unimplemented). Some of them are the
method Step, Back, Previous, Next, StartRecording, Eject, Save, etc. Some
properties may also didn't accept / return all the possible values (like what
would be returned by the standard TMediaPlayer component), such as TimeFormat,
Mode, etc. I skipped on implementing those unused element because I can't wait
to see the program working. I have no plan either on improving the component in
a distant future, so if anyone want to complete it, feel free to do so.
Just contact me for information about the source code.