MuteForSkype - auto pause music for Skype
Currently in beta 1. Supports any music player (via plugin). In Beta 1 are included plugins for Windows Media Player, Winamp (all versions) & Sonique.
When phone call starts, automaticaly stopped music player. After phone call end music will continues.
Download: MuteForSkypeSetup.msi beta 1, (457 kB)
.NET Framework 1.1 or bigger must be installed on computer. You can download it from Microsoft.
Instalation:
After installation you must start program from Start > All Programs > Startup folder, item MuteForSkype
or restart computer. Program started after automaticaly.
I promise, in beta 2 version will be setup more comfortable :-).
Plugin development:
Documentation
Plugin sample:
Source code of plugin for Windows Media Player.
using System;
using System.Runtime.InteropServices;
namespace Devmasters.Util.Skype.Plugin.WMP_RemoteControl
{
public class WMP : Devmasters.Util.Media.MuteForSkype.Extension.IMuter
{
public void StartPlayer()
{
SetWMPHandle();
if (bIsConnected)
{
Win32.SendMessage(iHandle, Win32.WM_COMMAND, 0x00004978, 0x00000000);
}
}
public void MutePlayer()
{
SetWMPHandle();
if (bIsConnected)
{
Win32.SendMessage(iHandle, Win32.WM_COMMAND, 0x00004979, 0x00000000);
}
}
public void Configure(System.Windows.Forms.IWin32Window parent)
{
}
public Devmasters.Util.Media.MuteForSkype.Extension.PluginInfo Info
{
get
{
Devmasters.Util.Media.MuteForSkype.Extension.PluginInfo i = new Devmasters.Util.Media.MuteForSkype.Extension.PluginInfo();
i.Copyright="(c) 2005 Devmasters. Michal Blaha.";
i.MoreInfoText="";
i.URL="http://blog.vyvojar.cz/michal/";
i.Version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
i.FriendlyName ="Mute for Windows Media Player ";
return i ;
}
}
public bool HasConfiguration
{
get
{
return false;
}
}
public Devmasters.Util.Media.MuteForSkype.Extension.IMuter.PlayerStatusEnum PlayerStatus
{
get
{
return Devmasters.Util.Media.MuteForSkype.Extension.IMuter.PlayerStatusEnum.Unknown ;
}
}
private System.Int32 iHandle;
private bool bIsConnected = false;
private void SetWMPHandle()
{
iHandle = Win32.FindWindow("WMPlayerApp", "Windows Media Player");
if (iHandle.Equals(IntPtr.Zero))
{
bIsConnected=false;
}
else
{
bIsConnected = true;
}
}
public bool IsPlayerConnected
{
get {return bIsConnected ;}
}
}
class Win32
{
public const int WM_CMMAND = 0x111;
[DllImport("User32.dll")]
public static extern int FindWindow(string strClassName, string strWindowName);
[DllImport("User32.dll")]
public static extern int FindWindowEx(int hwndParent, int hwndChildAfter, string strClassName, string strWindowName);
[DllImport("User32.dll")]
public static extern Int32 SendMessage(
int hWnd,
int Msg,
int wParam,
[MarshalAs(UnmanagedType.LPStr)] string lParam);
[DllImport("User32.dll")]
public static extern Int32 SendMessage(
int hWnd,
int Msg,
int wParam,
int lParam);
public Win32()
{
}
~Win32()
{
}
}
}