Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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
            });
        }