【问题标题】:C# Skype API Video CallC# Skype API 视频通话
【发布时间】:2012-01-30 15:48:57
【问题描述】:

我正在开发一个安全监控应用程序,我发现最好的方法是 Skype。

当发生可能的入侵时,应用程序会调用指定的 Skype ID,这可能是我的 Android 手机,我已完成所有图像处理工作。但我被这个 Skype API 卡住了,我写了这段代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SKYPE4COMLib;


namespace SkypeCall
{
    class Program
    {
        static void Main(string[] args)
        {
            Skype skype;
            skype = new Skype("Skype4COM.Skype", "Skype_");

            Call call = skype.PlaceCall(SkypeID);
            call.StartVideoSend();
        }
    }
}

这会发起语音通话,但在 call.StartVideoSend();显示错误

 An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in SkypeCall.exe

Additional information:  CALL: Action failed

我什至尝试过this,但我猜那是旧 API,无法从中得到任何东西。 甚至发送commands 也不行。

如果有人能帮助我,我将不胜感激。

【问题讨论】:

    标签: c# skype4com


    【解决方案1】:

    我认为您需要等到通话接通。

    最简单的方法是测试 call.Status

    class Program
        {
            static void Main(string[] args)
            {
                Skype skype;
                skype = new SKYPE4COMLib.Skype();
                string SkypeID = args[1];
                Call call = skype.PlaceCall(SkypeID);
                do
                {
                    System.Threading.Thread.Sleep(1);
                } while (call.Status != TCallStatus.clsInProgress);
                call.StartVideoSend();
            }
        }
    

    你也可以添加一个事件,但是我认为这会在每次调用时触发,所以除非你只将它用于这个项目,否则它可能太多了。

    class Program
        {
            static string SkypeID = "";
            static void Main(string[] args)
            {
                Skype skype;
                skype = new SKYPE4COMLib.Skype();
                skype.CallStatus += new _ISkypeEvents_CallStatusEventHandler(skype_CallStatus);
                Call call = skype.PlaceCall(SkypeID);
    
                Console.ReadKey();
            }
    
            static void skype_CallStatus(Call pCall, TCallStatus Status)
            {
                if (Status == TCallStatus.clsInProgress && pCall.PartnerHandle == SkypeID) { pCall.StartVideoSend(); }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多