Fragensteller
Screen-Capture mit Sound

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 { //... } }
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 DragovBitte 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.
-
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