Keywords: VB.NET DirectSound9 Player Equalizer Author: Dong Jun containing
Reprint, please indicate: http://blog.9cbs.net/a11s
It is found that it is a bit addictive recently. This is really a last article about DirectSound. Use VB to do player - Estimated that I fill the domestic blank. I am joking. Don't look at me with MediaPlayer. .. now to write a balancer. The necessary knowledge is an oscilloscope. If there is no oscilloscope's knowledge to do a balancer estimate, it is more difficult. This is a connection
http://blog.9cbs.net/a11s/archive/2005/03/07/313672.aspx
It is still working with WINAMP
The one in the middle is equalizer (this picture is not intercepted, and this blog actually does not delete uploaded images, I am dizzy)
The above 1k 3k 6k ... is adjustable.
According to the instructions of the previous article, it is the buffer that modifications played.
1 PrimaryBuffer This is the ultimate play buffer of DirectSound. It usually does not need to modify his content, including the SDK's example does not involve the PRIMARYBUFFER operation. Includes write, lock, play three parts. More detailed information You can only refer to C information, all are English. Don't expect me to translate, I am afraid.
2 For the scheme of the oscilloscope, apply to the equalizer. This is the volume of a certain section. This "segment" can map the data block of Riff, which is modified before playing, then LOCK, last Play
3 The most important thing is the definition of this "range". Because I know almost 0., I believe that WinAmp is even more reasonable. You have a curve on the top of the equalizer. His magnification is not big, but It is smoothed so that your EQ function is the same as the oscilloscope's drawing function, it should be a continuous effect.
More than 4 sounds loaded.
This is not much more, mainly to get the equalizer.
Since the ultimate essence of the equalizer is modified PrimaryBuffer, then you should easily think how to load MP3 or WMA.
The most "classic" approach, read MP3 files, then transform into responding Riff, write PrimaryBuffer, last Play
Popular approach, using existing plugins, COM objects. No found, DirectShow supported file format containing MediaPlayer file format, many players are like this. Basically, the plugin is made for Windows Media Player. Realone also has its own Update site upgrade plugin, WinAmp's plugin is also a lot. Their function is to play the target file to the active Riff and give the source program.
5 player playback link
5.1 Initialization
5.2 Open the file
5.3 find a suitable plugin to read the contents of the file, become Riff
5.4 find a suitable plugin for oscillome
5.5 find suitable plugins for EQ adjustment
5.6 find a suitable plugin for output (here we use DirectSound)
5.7 When playing, handle various time and a list of programs
5.8 ....
It can be seen that the insert is a very important technology, and it is not a person who can do.
This is the case.
But all uses one of the same standards, then everyone is implemented.
6 I have said so much, is it interested in plug-ins? This can be used directly. But you need to go to Winamp's official viewing his sample code. The Haojie once also went out the demonstration, C . Then I know the interface, you This procedure should be able to adapt to his plugin.
The related technologies are mainly a classic DLL dynamic loading problem, C # and VB.NET J # can't do. It is recommended to see C or Delphi. Although the VB6 of the installation plugin can also do .....
It is estimated that this piece is no longer worth studying, or it is not a person can do. Just understand it. If you really do it, you need to spend the time to be extravasive. Or You can still have a forlinux, this is not the problem I want to discuss.