/** * @brief Store audio conversations to a single file. * * Unlike TeamTalk.SetUserMediaStorageDir(), which stores users' audio * streams in separate files, TeamTalk.StartRecordingMuxedAudioFile() * muxes the audio streams into a single file. * * The audio streams, which should be muxed together, are * required to use the same audio codec. In most cases this is * the audio codec of the channel where the user is currently * participating (i.e. @c audiocodec member of #BearWare.Channel). * * If the user changes to a channel which uses a different audio * codec then the recording will continue but simply be silent * until the user again joins a channel with the same audio codec * as was used for initializing muxed audio recording. * * Calling TeamTalk.StartRecordingMuxedAudioFile() will enable the * #ClientFlag ::CLIENT_MUX_AUDIOFILE flag from TeamTalk.GetFlags(). * * Call TeamTalk.StopRecordingMuxedAudioFile() to stop recording. Note * that only one muxed audio recording can be active at the same * time. * * @param lpAudioCodec The audio codec which should be used as * reference for muxing users' audio streams. In most situations * this is the #BearWare.AudioCodec of the current channel, i.e. * TeamTalk.GetMyChannelID(). * @param szAudioFileName The file to store audio to, e.g. * C:\\MyFiles\\Conf.mp3. * @param uAFF The audio format which should be used in the recorded * file. The muxer will convert to this format. * * @see SetUserMediaStorageDir() * @see StopRecordingMuxedAudioFile() */ public bool StartRecordingMuxedAudioFile(AudioCodec lpAudioCodec, string szAudioFileName, AudioFileFormat uAFF) { return TTDLL.TT_StartRecordingMuxedAudioFile(m_ttInst, ref lpAudioCodec, szAudioFileName, uAFF); }
private static AudioCodec BuildSpeexCodec() { AudioCodec codec = new AudioCodec(); codec.nCodec = Codec.SPEEX_CODEC; codec.speex.nBandmode = 1; codec.speex.nQuality = 4; codec.speex.nTxIntervalMSec = 40; codec.speex.bStereoPlayback = false; return codec; }