2011-03-07 50 views
0

我注意到Exression Encoder 4的屏幕录制有时比指定的短。例如。一个5分钟的录制只会产生15秒的视频。这似乎与视频同时捕获的音频有关。最初我使用耳机扬声器作为音频配置文件。当我从录音中删除音频时,问题停止了。当我将音频配置文件更改为标准扬声器时,它也停止了。但是,当录制开始时,我可以通过快速更改音量轻松地进行复制。结果是录音冻结了......它仍然需要5分钟才能录制;但结果只有15秒左右(视频)。Microsoft Expression Encoder。 ScreenCapture

代码片段如下所示。

 try 
     { 
      _screenCaptureJob = new ScreenCaptureJob(); 
      _screenCaptureJob.CaptureRectangle = _screenRectangle; 
      _screenCaptureJob.ShowFlashingBoundary = true; 
      _screenCaptureJob.ScreenCaptureVideoProfile.FrameRate = 20; 
      _screenCaptureJob.CaptureMouseCursor = false; 

      _screenCaptureJob.ScreenCaptureCommandFinished += new EventHandler<ScreenCaptureCommandFinishedEventArgs>(_screenCaptureJob_ScreenCaptureCommandFinished); 
      _screenCaptureJob.ScreenCaptureFinished += new EventHandler<ScreenCaptureEventArgs>(_screenCaptureJob_ScreenCaptureFinished); 

      Collection<EncoderDevice> audioDevices = EncoderDevices.FindDevices(EncoderDeviceType.Audio); 
      try 
      { 
       EncoderDevice foundDevice = audioDevices.First(delegate(EncoderDevice item) { return item.Name.StartsWith(@"Speakers"); }); 
       _screenCaptureJob.AddAudioDeviceSource(foundDevice); 
      } 
      catch (Exception ex) 
      { 
       _appLogger.Error(string.Format("RecordNextSegment. Cannot find prefered audio device using {0} !", audioDevices[0].Name), ex); 
       _screenCaptureJob.AddAudioDeviceSource(audioDevices[0]); 
      } 
      _currentDurationInSeconds = (_recordDurationInSeconds < _maxSegmentDurationInSeconds) ? _recordDurationInSeconds : _maxSegmentDurationInSeconds; 

      _screenCaptureJob.Duration = DateTimeUtilities.DurationToTimeSpan(_currentDurationInSeconds); 
      _screenCaptureJob.OutputScreenCaptureFileName = string.Format(@"{0}\{1}.wmv", _tvaConfiguration.TVAVideoDirectoryRawVideo, FileNameFromSegment(_segmentNumber)); 
      _screenCaptureJob.Start(); 
      LogInfo(string.Format("Remaining time (seconds): {0}. Current time: {1}. File: {2}", _recordDurationInSeconds, _currentDurationInSeconds, _screenCaptureJob.OutputScreenCaptureFileName)); 

回答

0

不知道,关于如何解决您的问题,但想给你一些关于音频问题的输入。在两台机器上,我测试了我的应用程序,屏幕截图以及音频的完美工作。所以从这一点,我只能得出结论,认为它可能是与您的硬件或与您的代码有问题...(通过它也许调试?)

而且,您的解决方案可能是同this.

相关问题