public static void RebuildMixCastAudioDevices(int samplingRate) { MixCast.Settings.audioDevices.Clear(); for (int i = 0; i < devices.Count; i++) { if (devices[i] != null) { MixCastData.AudioCalibrationData audioDevice = new MixCastData.AudioCalibrationData(); audioDevice.audioDeviceName = devices[i].name; audioDevice.audioDeviceAltName = devices[i].altname; if (devices[i].outputs.Count > 0) { int index = Utility.Find.Index <AudioInfo>(devices[i].outputs, o => o != null && o.samplingRate == samplingRate); AudioInfo output; output = devices[i].outputs[index >= 0 ? index : 0]; audioDevice.avgBytesPerSec = output.avgBytesPerSec; audioDevice.bitsPerSample = output.bitPerSample; audioDevice.blockAlign = output.blockAlign; audioDevice.channel = output.channel; audioDevice.samplingRate = output.samplingRate; } MixCast.Settings.audioDevices.Add(audioDevice); } } }
public RETURNCHANGETYPE PlayWithSettings(MixCastData.CameraCalibrationData cam) { if (_suppressingPlayback) { return(RETURNCHANGETYPE.NothingNewDoNothing); } cam.audioData.delayMs = (int)cam.bufferTime; micData = AudioDeviceManager.GetAudioDeviceByAltName(cam.audioData.audioAltName); if (cam != null) { if (micData != null) { return(SetPlay(cam.audioData.audioAltName, (int)micData.channel, (int)micData.samplingRate, (int)micData.bitsPerSample, cam.audioData.audioConfig, cam.audioData.volume, cam.audioData.desktopVolume, cam.audioData.delayMs)); } cam.audioData.useAudioInput = false; // mic is null return(SetPlay("", 0, 0, 0, cam.audioData.audioConfig, 0.0f, cam.audioData.desktopVolume, cam.audioData.delayMs)); } return(SetPlay("", 0, 0, 0, MixCastAV.AUDIOCONFIG.NO_AUDIO, 0.0f, 0.0f, 0)); }