none
Screen-Capture mit Sound RRS feed

  • Frage

  • Der Code-Ausschnitt stammt vom "Simple Screen Recorder"

    Der Bildinhalt wird auch einwandfrei erfasst, wie komme ich aber an die Audio-Samples.                  

    private void CreateMediaObjects()
                {
                    // Create our encoding profile based on the size of the item
                    int width = _captureItem.Size.Width;
                    int height = _captureItem.Size.Height;
    
                    // Describe our input: uncompressed BGRA8 buffers
                    var videoProperties = VideoEncodingProperties.CreateUncompressed(MediaEncodingSubtypes.Bgra8, (uint)width, (uint)height);
                    _videoDescriptor = new VideoStreamDescriptor(videoProperties);
                    //_mediaStreamSource = new MediaStreamSource(_videoDescriptor);
    
                    //????????????????????
                    var audioProperties = AudioEncodingProperties.CreatePcm(48000, 2, 16);
                    _audioDescriptor = new AudioStreamDescriptor(audioProperties);
                    _mediaStreamSource = new MediaStreamSource(_videoDescriptor, _audioDescriptor);
                    //????????????????????
    
                    _mediaStreamSource.BufferTime = TimeSpan.FromSeconds(0);
                    _mediaStreamSource.Starting += OnMediaStreamSourceStarting;
                    _mediaStreamSource.SampleRequested += OnMediaStreamSourceSampleRequested;                
    
                    // Create our transcoder
                    _transcoder = new MediaTranscoder();
                    _transcoder.HardwareAccelerationEnabled = true;                
                }
    
                private void OnMediaStreamSourceSampleRequested(MediaStreamSource sender, MediaStreamSourceSampleRequestedEventArgs args)
                {
                    if (_isRecording && !_closed)
                    {
                        if (args.Request.StreamDescriptor == _videoDescriptor)
                        {
                            try
                            {
                                using (var frame = _frameGenerator.WaitForNewFrame())
                                {
                                    if (frame == null)
                                    {
                                        args.Request.Sample = null;
                                        DisposeInternal();
                                        return;
                                    }
    
                                    var timeStamp = frame.SystemRelativeTime;
    
                                    var sample = MediaStreamSample.CreateFromDirect3D11Surface(frame.Surface, timeStamp);
                                    args.Request.Sample = sample;
                                }
                            }
                            catch (Exception e)
                            {
                                Debug.WriteLine(e.Message);
                                Debug.WriteLine(e.StackTrace);
                                Debug.WriteLine(e);
                                args.Request.Sample = null;
                                DisposeInternal();
                            }
                        }
                        else
                        {
                           //????????????????
                        }
                    }
                    else
                    {
                        //...  
                    }
                }

    Dienstag, 23. Juni 2020 15:11

Alle Antworten

  • Hallo hth26,

    Du kannst versuchen, die AudioGraph-Klasse zu verwenden, um speziell das PCM-Audioformat zu erhalten, wie in diesem Blog-Artikel beschrieben:
    Windows 10, UWP, AudioGraph–Recording Microphone to WAV File

    Gruß,

    Ivan Dragov

    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Mittwoch, 24. Juni 2020 13:45
    Moderator
  • Hallo Ivan,

    danke für deine Anregung. Leider scheint das tatsächlich nur mit dem Mikrofon (bzw. FileInput,..) zu funktionieren.
    Ich würde aber zusammen mit dem Screen den System-Sound 'capturen' wollen.
    Da scheint es so einfach leider keinen Weg zu geben?

    hth26

    Montag, 29. Juni 2020 17:23