我正在寻找一些C#代码..或.NET组件来记录表单在我的屏幕上(而不是整个桌面上)的活动以及音频,类似到Camtasia允许做的项目。用于将特定表单活动+音频记录到avi的.NET代码
1
A
回答
2
视频部分其实很简单。所有你需要的是一个计时器,每秒运行20次,将窗体的画布保存为图像文件。然后从这些图片中创建一个动画。
要捕捉图像:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
tVideo.Start();
}
int i = 0;
private void tVideo_Tick(object sender, EventArgs e)
{
String lFile = String.Format("c:\\{0}.bmp", i);
SaveAsBitmap(this, lFile);
i++;
}
public void SaveAsBitmap(Control aCtrl, string aFileName)
{
if (File.Exists(aFileName))
File.Delete(aFileName);
Graphics lGraphics = aCtrl.CreateGraphics();
Bitmap lImage = new Bitmap(aCtrl.Width, aCtrl.Height);
aCtrl.DrawToBitmap(lImage, new Rectangle(0, 0, aCtrl.Width, aCtrl.Height));
lImage.Save(aFileName);
lImage.Dispose();
}
}
这仅仅是一个光样,当然你必须添加一些压缩,并尽量避免保存同一图像两次。知道有多少图像是相同的+了解帧率,您知道显示相同帧的时间。
要添加游标,您必须在鼠标单击时用鼠标x,y和事件保留一些变量。然后将它添加到图片。
当然,这不适用于3D游戏,尽管在win32涂料之后绘制了叠加层。
为此你必须使用DirectX/OpenGl/XNA。我认为这个想法是一样的。 对于音频,DirectX也是如此。
我的完整源代码: http://deathsquad.pl/archiwum/Inne/so/answer-1934452.rar
一些DirectX的音频采样: http://www.codeproject.com/KB/directx/audiosav.aspx
1
退房Gallio:这是一个很好的测试框架,并已内置屏幕录制API。
这篇文章给出了几个示例: http://blog.bits-in-motion.com/2009/09/announcing-gallio-and-mbunit-v31.html
相关问题
- 1. 如何通过代码将BindingSource移动到特定记录
- 2. Windows视频 - 添加音频流到AVI
- 3. 使用DirectShow CaptureNet添加音频到AVI
- 4. 语音记录仪中的音频表
- 5. 如何记录特定的应用程序音频? vb.net
- 6. 如何将音频效果应用于录制的音频?
- 7. Android音频记录
- 8. Nativescript记录音频
- 9. 记录音频瓦特/迈克保存到文档目录
- 10. iOS流音频和记录音频
- 11. Javascript音频频道活动
- 12. 在Android上用特定音量录制音频的API
- 13. iOS:记录动态音频播放
- 14. 亚音速3活动记录分页
- 15. symfony 1.4/doctrine 1.2活动记录关系表代码组织
- 16. 将两个对象链接到轨道活动记录中的单个记录
- 17. 将JSON嵌套到活动记录中
- 18. 用于编辑音频的.NET库
- 19. 的Gstreamer记录音频和视频
- 20. 没有音频的Android记录视频
- 21. 是否有用于通用音频文件解码的.NET库?
- 22. 不断使用音频记录的URL播放音频文件
- 23. VoicePHP记录音频文件
- 24. AVAssetWriter不记录音频
- 25. Phonegap插件记录音频
- 26. 活动记录表加入
- 27. 针对特定记录的启动活动
- 28. 亚音速 - 活动记录不抢我的所有表
- 29. 音频错误单元代码-remoteIO iphone
- 30. json到活动记录
你能告诉我它的API包含了录音功能?我无法找到确切的dll文件。 – 2014-08-12 07:34:20
我测试了它。它不支持屏幕录制的音频。 – 2014-08-18 12:56:09