5

我一直在浏览 Skype 开发 API,并想知道是否有一种方法可以让我知道 Skype 是否正在通过某些 API 运行活动呼叫。

Skype.Client.IsRunning 告诉 Skype 应用程序本身是否正在运行,还有其他几个 API 可以了解不同的事情,例如通话历史记录等,但我找不到知道当前是否有 Skype 通话活动的方法。

任何帮助将不胜感激。

4

3 回答 3

1

因为您没有指定您尝试使用哪种语言来完成,所以我在 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();
        }
    }
}

请注意,此代码不包括任何清理/错误处理。

希望这可以帮助。

于 2013-03-14T20:14:54.797 回答
1

另一种选择是使用Skype命令:http ://dev.skype.com/desktop-api-reference#OBJECT_CALL

于 2013-04-02T16:58:58.250 回答
0

这是一个如何检查使用Skype4Py的Sevabot中的活动呼叫的示例

基本上,您侦听呼叫事件并捕获开始和结束呼叫事件,并在呼叫处于活动状态时进行自己的簿记。

于 2013-03-14T19:58:51.107 回答