Adding a reference to MediaMonkey
Here you can find resources related to automating MediaMonkey in .NET (C#/VB.NET), including very simple beginners tips & tricks.
Adding a reference to MediaMonkey
- Choose Add Reference
- Go to the COM Tab
- Choose "MediaMonkey Library"
The base Namespace for MediaMonkey is SongsDB:
using SongsDB;
Subscribing to events
- According to Forum Posts subscribing to events does not work with external applications, like .NET applications:
- There is however some talk about a solution in:
Check out the post by stax76 on Tue Dec 26, 2006 11:08 am. Possibly this code could work:
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;
using SongsDB;
namespace WindowsApplication1 {
[ComVisible(true)]
// this overrides [assembly: ComVisible(false)]
// (is set by project options dialog)
// so registry don't get bloated with unneeded types
public class Program {
public SDBApplication SDB;
Timer tmr = new Timer();
[STAThread]
public static void Main() {
if (MessageBox.Show("Click yes to install, no to uninstall",
Application.ProductName, MessageBoxButtons.YesNo) == DialogResult.Yes) {
RegistrationServices rs = new RegistrationServices();
rs.RegisterAssembly(
Assembly.GetExecutingAssembly(),
AssemblyRegistrationFlags.SetCodeBase
);
}
else {
RegistrationServices rs = new RegistrationServices();
rs.UnregisterAssembly(Assembly.GetExecutingAssembly());
}
}
public void Init(SDBApplication mm) {
string AssemblyName = Assembly.GetExecutingAssembly().GetName().Name;
SDB = mm;
SDB.set_Objects(AssemblyName, this);
// Line under WORKS, lets the MM player start playing
((Program)SDB.get_Objects(AssemblyName)).SDB.Player.Play();
SDB.OnPlay += new ISDBApplicationEvents_OnPlayEventHandler(SDB_OnPlay);
tmr.Interval = 3000;
tmr.Enabled = true;
tmr.Tick += new EventHandler(tmr_Tick);
tmr.Start();
}
void tmr_Tick(object sender, EventArgs e) { // THIS IS EXECUTED!
tmr.Enabled = false;
SDB.Player.Volume = 0.2;
MessageBox.Show("timer");
}
void SDB_OnPlay() { // THIS IS EXECUTED!
SDB.Player.Volume = 0.5;
MessageBox.Show("onplay");
}
}
}