Немного почистил сборку, удалил nuget, чтобы не тянуло мусор из инета. Нужные библиотеки положил в папку Libraries.
Поправил также код ZXMAK2.Host.Media (в проект не включена, т.к. под неё нет UI).
https://drive.google.com/file/d/1qQN...ew?usp=sharing
Заметки по сборке:
- Собирать в режиме Release x86 (Managed DirectX библиотеки расчитаны только на x86)
- Для запуска под отладчиком выключить галочку Debug->Exception => Managed Debugging Assistans -> Loader Lock -> Thrown (это баг Managed DirectX).
- чтобы при сборке прописывалась версия (она пишется во все dll) нужно раскоментить строку в .targets\Common.targets:
Код:
<!-- Uncomment for automatic set assembly version -->
<Import Project="CommonAssemblyVersion.targets" />
Когда эта штука включена редактор студии может глючить (не находит референсы, кидает ворнинги). На компиляцию это не влияет, но редактировать и отлаживать код мешает. Поэтому по дефолту обновление версии отключено. При компиляции с выключенным обновлением версии, версия будет отображаться как 0.0.0.0
- Для записи видео нужно создать экземпляр MediaRecorder и присвоить его _host.MediaRecorder в ZXMAK2.Host.WinForms.Views.MainView
Например можно добавить в конец метода MainView.OnLoad (когда _host уже присвоен):
Код:
_host.MediaRecorder = new ZXMAK2.Host.Media.MediaRecorder("C:\\test.mp4", renderVideo.Width, renderVideo.Height);
В итоге эмулятор будет писать видео с начала запуска... Удобно для покадровой отладки, т.к. эмулятор пишет в файл 50 герцовую развертку, т.е. все кадры, но MP4 немного размывает изображение.
Для записи звука можно аналогично создать SoundRecorder:
Код:
_host.MediaRecorder = new ZXMAK2.Host.Media.SoundRecorder("C:\\test.wav", _host.SampleRate);
Запись видео и звука при работе в режиме MaxSpeed работает с нормальной скоростью (без пропуска кадров), что можно использовать для быстрой записи видео. Записанное видео можно просматривать на хорошем видеоплеере с видеоресамплером, или на дисплее с 50 Гц разверткой - это позволяет качествено рассмотреть мультиколорные эффекты.
Эта сборка исходников включает все библиотеки, в том числе и для записи видео.