C# Skype API 视频通话
Posted
技术标签:
【中文标题】C# Skype API 视频通话【英文标题】:C# Skype API Video Call 【发布时间】: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 也不行。
如果有人能帮助我,我将不胜感激。
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于C# Skype API 视频通话的主要内容,如果未能解决你的问题,请参考以下文章
移动端视频通话软件----sip----开源软件----阿冬专栏