Skype 通話をキャプチャして、wave 拡張機能を使用して PC に保存しようとしていますが、試行するたびにmciSendString
サウンド ファイルの作成に失敗します。
これが私のコードです
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)
else if (status == TCallStatus.clsFinished)
{
DateTime currdate = DateTime.Now;
//string datetime = currdate.Day + currdate.Month + currdate.Year + "_" + currdate.Hour + currdate.Minute + currdate.Second;
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());
}
パスは、ファイルを保存する必要がある場所です。
C:\\Users\\tridip.BBAKOLKATA\\Documents\\Visual Studio 2010\\Projects\\CSRAssistant\\CSRAssistant\\bin\\Debug\\VoiceRecords
私のコードにはどのような間違いがありますか?
しかし、そのmciSendString
ようにパスとファイル名をハードコーディングするとresult = mciSendString("save recsound d://test.wav", "", 0, 0);
、ファイルが作成されましたが、そのウェーブファイルを再生したときにスカイプ通話が記録されませんでした。
パス指定のどこが間違っていますか?
2 つ目は、wave ファイルの生成時に音声が録音されていないことです。なんで?