如何录制&通过c#保存skype调用通信

时间:2014-03-18 18:18:15

标签: c# skype4com

我正在努力录制&使用c#保存skype调用通信,但它只能工作一半。 当我从Skype拨打移动号码并连接时,他们所说的内容并没有被录制,但我所说的是正在录制的&保存。

我只是不明白为什么其他人的声音没有被记录下来&保存。这是我的代码:

public void Skype_CallStatus(Call call, TCallStatus status)
{
    int result = 0;
     Configuration config = 
         ConfigurationManager.OpenExeConfiguration
           (System.Windows.Forms.Application.ExecutablePath);
    if (status == TCallStatus.clsInProgress)
    {
        mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
        mciSendString("record recsound", "", 0, 0);

    }
    else if (status == TCallStatus.clsFinished)
    {
        DateTime currdate = DateTime.Now;
        string datetime = string.Format("{0:yyyyMMddhhmmss}.wav", DateTime.Now);

        string wavfilename = "";
        if (config.AppSettings.Settings["VoiceRecordsPath"].Value != null)
        {
            //wavfilename = config.AppSettings.Settings["VoiceRecordsPath"]
            //.Value.Replace(",","") + "_" + CSRBusiness.User.Country + "_" 
            //+ datetime + @".wav";
            wavfilename = CSRBusiness.User.Country + "_" + datetime;
        }
        Directory.SetCurrentDirectory( config.AppSettings.Settings
            ["VoiceRecordsPath"].Value.Replace(",", ""));

        //result = mciSendString("save recsound " + wavfilename, "", 0, 0);
        result = mciSendString("save recsound d://test.wav", "", 0, 0);
        mciSendString("close recsound ", "", 0, 0);
        MessageBox.Show(result.ToString());
    }
   // MessageBox.Show(result.ToString());
}

实际上,语音会从此区域录制并保存:

else if (status == TCallStatus.clsFinished)
{

}

所以我需要帮助找出要记录和做的事情。保存通话的两端。我的代码在哪里可以做到这一点?

1 个答案:

答案 0 :(得分:2)

mciSendString对Skype一无所知。它所做的只是记录您的计算机麦克风拾取的内容(不包括Skype中的其他用户)。

我希望您必须从Skype本身获取音频流给其他人才能录制它。