![]() |
Интересует как можно сделать реализацию в C# проигрывания mp4 видео через Nuget либу WMPLib с Windows Form без сохранения на диск?
Есть какой то вариант без BoxedApp и других VM проигрывания на Windows Form? Может есть какой то вариант загрузить в память и проиграть из неё, а после закрытия приложения выгрузить? П.С: да есть wpf где проигрывание из ресурсов напрямую, но лучше на windows form. |
Цитата:
|
Цитата:
Цель на заднем фоне Windows Form проигрывать видео с логотипом используя WMPLib из Nuget. Если сохранить на диск из ресурсов все работает, но файл только мешает. Можно конечно сохранять его в temp папку, но хотелось бы из памяти напрямую прочитать. Просто искал все возможные варианты, но нет толком информации по этому вопросу. |
Цитата:
наш форум конечно вне конкуренции, но там обитает большая куча бородатых программистов и девелоперов, вероятность получить ответ на верно заданный вопрос - 95% |
Цитата:
docs.microsoft.com WinForms уже давно объявлены легаси и устарели. WPF на самом деле простой, стоит только перешагнуть через понимание MVVM и окажется, что даже проще разрабатывать, чем на винформах, к тому же есть Avalonia. Да и вообще уже развивается WinUI 3, которая всё унифицируется и дальше. Немного инфографики по этому поводу, к тому же WPF так же уже устарел как и UWP, хотя WPF самый популярный, поэтому просто берём avalonia. Хотя они объявлены и легаси но оптимизацию свою они получили What's new in Windows Forms runtime in .NET 5.0. Но зачем на устаревшем делать? |
Цитата:
Просто у большинства из коробки уже стоит net framework 2.0, выше возможно не у всех установлено. Как будет времени больше, сделаю на С++ с GDI, но пока что C#. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Можно хоть на golang сделать при желании, но главная проблема сделать проигрывание из памяти mp4 без сохранения на диск из ресурсов. |
@Maksim, а такой вот вариант?)
создаем на сайте файл video.html HTML: Код:
C#: Код:
void.NET Framework 2.0 результат |
Вариант с браузером хороший, но буду искать решение чтобы и на windows form можно было проиграть видео из ресурсов без сохранения на диск.
В крайнем случае если не найду решение, сделаю пусть уже на диск сохраняет в temp папку и удаляет при закрытии лаунчера. В будущем сделаю уже не на C#. |
Эм, ну так сделай через ресурс, как и хотел.
На VS 2019 вот так: 1. Открываем свойства проекта (ПКМ на проекте в Solution Explorer -> Properties). 2. Переходим на табку Resources. 3. Если файла ресурсов еще нет - там будет гиперлинк с текстом аля "У тебя нет ресурсов, давай создадим, а". Кликаем на него - в итоге создается Resources.resx. 4. В появившемся компоненте нажимаем Add Resource -> Add Existing File..., выбираем файл и переименовываем ресурс, чтобы название сгенерированной переменной, выделенной под этот ресурс, было по стайл гайду. 5. В коде стучимся напрямую к классу Resources - каждый ресурс в нем будет обявлен как internal static. К примеру, я назвал файл DotaAllstarsMapContent (даже не спрашивай, первый файл, который попался под руку ) - стучусь к нему как Resources.DotaAllstarsMapContent. Похожим образом делается и на плюсах, только там винапиха юзается (еще бы). How to load text file from Resources in VC++? I'm writing a DLL in VC++ and I need to use external text file. I have something like this right now: ifstream file; string line; file.open("C:\\Users\\Me\\Desktop\\textfile.txt"); getline(file, stackoverflow.com |
Цитата:
В моем случае WMPLib и mp4 |
Ну WMPLib-ой это точно не сделать. Если нужно делать под систему, на которой 2-ой фреймворк - это максимум, что можно выжать, то просто лучше писать уже сразу на плюсах, так как в любом случае от нативной либки, поддерживающей mp4 тут не обойтись. Как говорится: если долбиться в жопу, то уже сразу по жесткому.
|
Цитата:
Другой вариант использовать VM и все собрать в 1, но с этим могут быть ложные срабатывания антивирусов как в случае с темидой. Чтобы лишнее в приложении не таскать за собой так как WMPLib без исходников, закинул все через ILMerge. |
| Время: 10:18 |