Ho un'app universale che utilizza i video protetti da DRM di PlayReady. Il problema con PlayReady è che funziona solo se l'architettura di build dell'applicazione corrisponde all'architettura della CPU (ad es. ARM build su ARM, x64 su CPU a 64 bit, x86 su CPU a 32 bit). Questo è di progettazione (per qualche ragione).Rilevare se la CPU è 64 bit nell'app universale (Windows)
Quindi il problema è che se un utente ha una CPU a 64 bit ed esegue un sistema operativo a 32 bit. In questo caso, ottiene la build x86 dallo store (a causa del sistema operativo a 32 bit), ma PlayReady non funzionerà a causa della mancata corrispondenza tra il CPI a 64 bit e X86. In questo caso, voglio visualizzare un messaggio (invece di non riuscire a riprodurre il video).
Sono in grado di rilevare facilmente rilevare x86 build (aggiungendo un simbolo condizionale), ma come faccio a rilevare se la CPU è a 64 bit? Non c'è niente come System.Environment.Is64BitOperatingSystem
da .NET completo.
http://stackoverflow.com/questions/767613/identifying-the-cpu-architecture-type-using-c-sharp vedere la risposta sull'utilizzo di P/Invoke per ottenere l'architettura del processore –
dubito che questo sia reale problema, va solo sbagliato sulla tua macchina. Chi scarica l'app dallo Store ottiene automaticamente la versione appropriata. –
@ HansPassant no. Immagina di avere un tablet con Atom a 64 bit e Windows 8.1 a 32 bit. Il negozio ti darà un X86 costruito e PlayReady non funzionerà per te. –