Я настроил инициализацию внутри App.xaml.cs. Однако когда я запускаю приложение, оно сразу же вылетает при запуске. Я завернул Engine.Start в блок try-catch и обнаружил следующее исключение:
Критическая ошибка: Не удалось загрузить библиотеки FFmpeg 'C:\ffmpeg' Stack Trace: в FlyleafLib.FFmpegEngine..ctor() в FlyleafLib.Engine.StartInternalNonUI()
Вот мой код инициализации App.xaml.cs:
Код: Выделить всё
using System;
using System.IO;
using System.Windows;
using FlyleafLib;
namespace NUR
{
public partial class App : System.Windows.Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
try
{
try
Engine.Start(new EngineConfig()
{
FFmpegPath = @"C:\ffmpeg",
#if RELEASE
FFmpegLogLevel = Flyleaf.FFmpeg.LogLevel.Quiet,
LogLevel = LogLevel.Quiet,
#else
FFmpegLogLevel = Flyleaf.FFmpeg.LogLevel.Warn,
LogLevel = LogLevel.Debug,
LogOutput = ":debug",
//LogOutput = ":console",
//LogOutput = @"C:\Flyleaf\Logs\flyleaf.log",
#endif
//PluginsPath = @"C:\Flyleaf\Plugins",
UIRefresh = false, // Required for Activity, BufferedDuration, Stats in combination with Config.Player.Stats = true
UIRefreshInterval = 250, // How often (in ms) to notify the UI
});
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(
$"Критическая ошибка инициализации Flyleaf:\n\n" +
$"Сообщение: {ex.Message}\n\n" +
$"Внутренняя ошибка: {ex.InnerException?.Message}\n\n" +
$"Стек вызовов:\n{ex.StackTrace}",
"Ошибка запуска",
MessageBoxButton.OK,
MessageBoxImage.Error);
Shutdown();
}
}
}
}
Код: Выделить всё
xaml.csКод: Выделить всё
using System;
using System.Windows.Controls;
using FlyleafLib;
using FlyleafLib.MediaPlayer;
namespace NUR.Views
{
public partial class VideoForm : UserControl
{
public Player Player { get; set; }
public Config Config { get; set; }
public VideoForm()
{
Config = new Config();
Player = new Player(Config);
InitializeComponent();
DataContext = this;
}
}
}
Код: Выделить всё
- Я проверил, что цель сборки моего проекта строго установлена на x64 в Visual Studio.
- Я пробовал разные версии FFmpeg (включая старые сборки 4.4 и новые сборки), но исключение сохраняется.
- Папка C:\ffmpeg содержит реальные файлы .dll (например, avcodec, avformat и т. д.), а не только интерфейс командной строки ffmpeg.exe.