protected override async Task CreateLocalAudioTrackAsyncImpl() { if (Track == null) { // Ensure the track has a valid name string trackName = TrackName; if (trackName.Length == 0) { trackName = Guid.NewGuid().ToString(); // Re-assign the generated track name for consistency TrackName = trackName; } SdpTokenAttribute.Validate(trackName, allowEmpty: false); // Create the local track var trackSettings = new LocalAudioTrackSettings { trackName = trackName }; Track = await LocalAudioTrack.CreateFromDeviceAsync(trackSettings); // Synchronize the track status with the Unity component status Track.Enabled = enabled; } }
public async Task AddAudioTrackFromDeviceAsync(string trackName) { const string DefaultAudioDeviceName = "Default audio device"; await RequestMediaAccessAsync(StreamingCaptureMode.Audio); var settings = new LocalAudioTrackSettings { trackName = trackName }; var track = await LocalAudioTrack.CreateFromDeviceAsync(settings); SessionModel.Current.AudioTracks.Add(new AudioTrackViewModel { Track = track, TrackImpl = track, IsRemote = false, DeviceName = DefaultAudioDeviceName }); SessionModel.Current.LocalTracks.Add(new TrackViewModel(Symbol.Volume) { DisplayName = DefaultAudioDeviceName }); }