private VideoChatForm() { InitializeComponent(); InitQuality(); InitClipTypes(); _startcb = new NIMVChatMp4RecordOptHandler(VChatRecordStartCallback); _start_audio_record_cb = new NIMVChatAudioRecordOptHandler(VChatAudioRecordCallback); _stop_audio_record_cb = new NIMVChatAudioRecordOptHandler(VChatAudioRecordCallback); this.Load += VideoChatForm_Load; this.FormClosed += VideoChatForm_FormClosed; sendCaptureScreenDataTimer_.Interval = 100; sendCaptureScreenDataTimer_.Elapsed += SendCustomVideoTick; }
private void btnRecordAudio_Click(object sender, EventArgs e) { Random random = new Random(); string path = Application.StartupPath + @"\" + random.Next().ToString() + @".aac"; string json_extension = ""; audio_record = !audio_record; if (audio_record) { _start_audio_record_cb = new NIMVChatAudioRecordOptHandler(VChatAudioRecordCallback); btnRecordAudio.Text = "停止录音"; NIM.VChatAPI.StartAudioRecord(path, _start_audio_record_cb); } else { _stop_audio_record_cb = new NIMVChatAudioRecordOptHandler(VChatAudioRecordCallback); btnRecordAudio.Text = "录制音频"; NIM.VChatAPI.StopAudioRecord(_start_audio_record_cb); } }
/// <summary> /// 停止录制音频文件 /// </summary> /// <param name="cb">结果回调</param> /// <returns>无返回值</returns> public static void StopAudioRecord(NIMVChatAudioRecordOptHandler cb) { var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb); VChatNativeMethods.nim_vchat_stop_audio_record("", VChatAudioRecordStopCb, ptr); }
/// <summary> /// 开始录制音频文件,一次只允许一个音频录制文件 /// </summary> /// <param name="path">文件录制路径</param> /// <param name="cb">结果回调</param> /// <returns>无返回值</returns> public static void StartAudioRecord(string path, NIMVChatAudioRecordOptHandler cb) { var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb); VChatNativeMethods.nim_vchat_start_audio_record(path, "", VChatAudioRecordStartCb, ptr); }