Как загрузить видео в winforms из ресурсов?

Вопрос: Я хочу добавить видеофайл в мое приложение для форм Windows, тип видеоформата - MP4. Я уже искал, как добавить видео, и я нашел ответ на использование библиотеки медиаплеера Windows. Я использовал его, но как только я поместил полный URL моего файла, он работает на моей машине, но когда я устанавливаю его на любой другой,

Вопрос:

Я хочу добавить видеофайл в мое приложение для форм Windows, тип видеоформата – MP4. Я уже искал, как добавить видео, и я нашел ответ на использование библиотеки медиаплеера Windows.

Я использовал его, но как только я поместил полный URL моего файла, он работает на моей машине, но когда я устанавливаю его на любой другой, он не воспроизводится. Я знаю причину, по которой я предоставляю местоположение видео, которое является моим местоположением HD, затем я искал дальше и обнаружил, что внедряю ресурсы, я меняю действие сборки на встраиваемые ресурсы, но снова имею ту же проблему.

Как я могу получить доступ к моему файлу встраивания в свой код? Я уже пробовал, как namespace.file.mp4 или namespace.properties.resources.file.mp4 но он говорит, что:

Ошибка 1 Невозможно неявно преобразовать тип ‘byte []’ в ‘string’ L:Project SciMult-calcvideotesting2videotesting2Form1.cs 29 41 videotesting2

Лучший ответ:

это мой короткий код, который я хочу воспроизвести, когда пользователь нажимает “О” menustripitem

using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Reflection; using System.Resources; namespace videotesting2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e) { axWindowsMediaPlayer1.URL = @»L:about.mp4″; } }

}

Ответ №1

Когда вы получаете доступ к ресурсу, это байт [], поэтому вы не можете воспроизводить видео. Ваш метод хочет, чтобы путь не был байтом [].

Вы можете записать ресурс на диск, а затем воспроизвести его.

необходимо пространство имён

using System.Reflection; using System.IO;

Что-то вроде этого

//Place it in the directory of your application string mp4Path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), «mp4File.mp4»); //check if it hasn’t been written to disk yet if (!File.Exists(mp4Path)) { //write it to disk File.WriteAllBytes(mp4Path, namespace.properties.resources.file.mp4); } //play using mp4Path

Оцените статью
Добавить комментарий