Я пытаюсь воспроизвести видео в Windows Media Player через свой код. Путь:Путь ключа реестра для Windows Media Player в C#
C:\Program Files (x86)\Windows Media Player\wmplayer.exe
Если я жёстко его,
string filePath = System.IO.Path.Combine (Application.streamingAssetsPath, "Demo.mp4");
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Program Files (x86)\Windows Media Player\wmplayer.exe";
proc.StartInfo.Arguments = "\"" + filePath + "\"";
proc.Start();
Я могу играть видео. Но я хочу использовать путь, универсальный для всех машин. Так, пройдя по этой ссылке Programmatically detect if Windows Media Player is installed, я переписал мой код:
private string makePath;
RegistryKey myKey;
makePath = @"HKLM\Software\Microsoft\Active Setup\Installed Components\{22d6f312-b0f6-11d0-94ab-0080c74c7e95}";
myKey = Registry.LocalMachine.OpenSubKey (makePath);
IEnumerator Example()
{
if (myKey == null) {
print ("No Windows Media Player Installed");
} else {
proc.StartInfo.FileName = makePath;
proc.StartInfo.Arguments = "\"" + filePath + "\"";
proc.Start();
}
и вызов этой функции где-то Но MYKEY, как представляется, быть пустым. Правильный ли путь, который я упомянул здесь, или что нужно сделать, чтобы воспроизвести видео?
Почему вы не позволяете оболочка решить, какой игрок использовать? –
попробуйте использовать Environment.GetFolderPath и получить папку с программными файлами через перечисление SpecialFolders. Это гарантирует, что путь всегда корректен на машине, на которой запущено приложение, поскольку некоторые из них могут быть 32-разрядными ОС и другими 64-разрядными ОС. Я также согласен с @DavidHeffernan о том, чтобы позволить Shell решить, какой игрок использовать. –