我一直在浏览 Skype 开发 API,并想知道是否有一种方法可以让我知道 Skype 是否正在通过某些 API 运行活动呼叫。
Skype.Client.IsRunning 告诉 Skype 应用程序本身是否正在运行,还有其他几个 API 可以了解不同的事情,例如通话历史记录等,但我找不到知道当前是否有 Skype 通话活动的方法。
任何帮助将不胜感激。
因为您没有指定您尝试使用哪种语言来完成,所以我在 C# 中发布了一个示例:
using System;
using System.Windows.Forms;
using SKYPE4COMLib;
namespace SkypeTest
{
public partial class Form1 : Form
{
private ISkype _skype;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
_skype = new SkypeClass();
var events = (_ISkypeEvents_Event) _skype;
events.CallStatus += (call, status) =>
{
System.Diagnostics.Debug.WriteLine(call.PartnerHandle);
Action<object, object> a = (partner, sta) =>
{
textBox1.Text = partner.ToString() + " " + sta.ToString();
};
textBox1.Invoke(a, call.PartnerDisplayName, status.ToString());
};
_skype.Attach();
}
}
}
请注意,此代码不包括任何清理/错误处理。
希望这可以帮助。
另一种选择是使用Skype命令:http ://dev.skype.com/desktop-api-reference#OBJECT_CALL
这是一个如何检查使用Skype4Py的Sevabot中的活动呼叫的示例
基本上,您侦听呼叫事件并捕获开始和结束呼叫事件,并在呼叫处于活动状态时进行自己的簿记。