Everything you linked to concerns itself with encrypting/decrypting files, which must be written to other files and MediaPlayer won't play content from a buffer of your choosing in memory.
To do this without using an unencrypted file or custom media server, you'd be writing a codec to do the encryption/decryption. It would have to be part of the graph that MediaPlayer builds to play the content.
This is something that you really shouldn't use C# for. You'd be using C to do this and you can find some documentation on what's involved
here[
^].