/// <summary> /// Start recoding a conversation between one or more calls. /// </summary> /// <param name="captureMedia">The capture media; e.g the local microphone.</param> /// <param name="conferenceCalls">Array of remote conference calls.</param> public void StartRecordingConversation(AudioMedia captureMedia, AudioMedia[] conferenceCalls) { pjsua2.AudioMedia media = captureMedia.PjAudioMedia; media.startTransmit(_pjAudioMediaRecorder); // For each call. for (int i = 0; i < conferenceCalls.Length; i++) { pjsua2.AudioMedia mediaCall = conferenceCalls[i].PjAudioMedia; mediaCall.startTransmit(_pjAudioMediaRecorder); } }
/// <summary> /// Start conference call between remote parties; allow each party to talk to each other. /// </summary> /// <param name="conferenceCalls">Array of remote conference calls.</param> public void StartConferenceCall(AudioMedia[] conferenceCalls) { // For each call. for (int i = 0; i < conferenceCalls.Length; i++) { // Get first group. pjsua2.AudioMedia mediaCall_1 = conferenceCalls[i].PjAudioMedia; // For each call. for (int j = 0; j < conferenceCalls.Length; j++) { // Get second group. pjsua2.AudioMedia mediaCall_2 = conferenceCalls[j].PjAudioMedia; // If the two audio media are not equal. if (mediaCall_1.getPortId() != mediaCall_2.getPortId()) { // Allow these two calls to communicate. mediaCall_1.startTransmit(mediaCall_2); } } } }
/// <summary> /// Establish unidirectional media flow to sink. This media port /// will act as a source, and it may transmit to multiple destinations / sink. /// And if multiple sources are transmitting to the same sink, the media /// will be mixed together.Source and sink may refer to the same Media, /// effectively looping the media. /// /// If bidirectional media flow is desired, application needs to call /// this method twice, with the second one called from the opposite source /// media. /// </summary> /// <param name="sink">The destination media.</param> public void StartTransmit(AudioMedia sink) { pjsua2.AudioMedia media = sink.PjAudioMedia; _pjAudioMedia.startTransmit(media); }
/// <summary> /// Start recording. /// </summary> /// <param name="captureMedia">The audio capture media.</param> public void Start(AudioMedia captureMedia) { pjsua2.AudioMedia media = captureMedia.PjAudioMedia; media.startTransmit(_pjAudioMediaRecorder); }