关于c#中录屏的问题
各路大神好,我目前使用Accord.Net中的 Accord.Video 包和 Accord.Video.FFMPEG包,已经实现了录屏的功能,但是想要在录屏的同时,把麦克风的声音也录进去,碰到了麻烦,代码大致如下:
VideoFileWriter writer = new VideoFileWriter();
Rectangle screenArea = Screen.PrimaryScreen.Bounds;
stream = new ScreenCaptureStream(screenArea);
var collection = new AudioDeviceCollection(AudioDeviceCategory.Capture);
source = new AudioCaptureDevice(collection.Last());
source.AudioSourceError += Source_AudioSourceError;
stream.VideoSourceError += Stream_VideoSourceError;
source.NewFrame += Source_NewFrame;
stream.NewFrame += new NewFrameEventHandler(video_NewFrame);
writer.Open("test.mp4", Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height,10,VideoCodec.H264,82500,AudioCodec.AAC,32000,16000, source.Channels);
//825000处 是视频的比特率,32000处是音频的比特率,16000处是音频的sampleRate
private void video_NewFrame(object sender, Accord.Video.NewFrameEventArgs eventArgs)
{
// get new frame
Bitmap bitmap = eventArgs.Frame;
writer.WriteVideoFrame(bitmap );
}
private void Source_NewFrame(object sender, Accord.Audio.NewFrameEventArgs eventArgs)
{
// Read current frame...
Signal s = eventArgs.Signal;
writer.WriteAudioFrame(s.RawData);
}
录制结束后,视频文件时间明显长于录制时间,声音都是 兹拉兹拉的电视没台的声音。我怀疑问题出在 几个比特率 的大小上。
请各位大神帮忙解决解决。谢啦。