【发布时间】:2015-06-28 14:32:35
【问题描述】:
我有一个使用 PlayReady DRM 保护视频的通用应用。 PlayReady 的问题在于,它只有在应用程序构建架构与 CPU 架构匹配时才有效(例如:ARM 构建在 ARM 上,x64 在 64 位 CPU 上,x86 在 32 位 CPU 上)。这是设计使然(出于某种原因)。
所以问题是,如果用户拥有 64 位 CPU 并运行 32 位操作系统。在这种情况下,他从商店获得了 x86 版本(因为 32 位操作系统),但由于 64 位 CPI 与 X86 版本不匹配,PlayReady 将无法工作。在这种情况下,我想显示一条消息(而不仅仅是无法播放视频)。
我可以轻松检测 x86 构建(通过添加条件符号),但是如何检测 CPU 是否为 64 位?完整的 .NET 中没有像 System.Environment.Is64BitOperatingSystem 这样的东西。
【问题讨论】:
-
stackoverflow.com/questions/767613/… 查看使用 P/Invoke 获取处理器架构的答案
-
我怀疑这是一个真正的问题,它只会在您的机器上出错。从商店下载应用程序的人会自动获得相应的版本。
-
@HansPassant 不。想象一下,您有一台配备 64 位 Atom 和 32 位 Windows 8.1 的平板电脑。商店会给你一个 X86 内置的,PlayReady 不适合你。
-
嗯,不,Windows 8.1 32bit 没有 64bit 版本的 PlayReady。
标签: c# xaml windows-8 windows-phone-8.1 win-universal-app