我正在使用 LibVLCSharp 库来播放 m3u8 文件。 (TS加密视频) 我想在代码中使用字符串(同一文件的文本)而不是 m3u8 文件以提高安全性。 {事实上,我用静态密钥加密m3u8文件并将其保存在硬盘上。我想在程序中解密并播放m3u8文件,而不将解密的文件保存在硬盘上。}
库可接受的代码
LibVLC _libVLC = new LibVLC("");
_libVLC.SetLogFile("log1.txt");
videoView1.MediaPlayer = new MediaPlayer(_libVLC);
Media plist = new Media(_libVLC, "vi/file.m3u8", FromType.FromPath);
videoView1.MediaPlayer.Play(plist);
我想要的代码不起作用
string s = "#EXTM3U\r\n
#EXT-X-VERSION:3\r\n
#EXT-X-TARGETDURATION:17\r\n
#EXT-X-MEDIA-SEQUENCE:0\r\n
#EXT-X-PLAYLIST-TYPE:VOD\r\n
#EXT-X-KEY:METHOD=AES-128,URI=\"key\",IV=0x00000000000000000000000000000000\r\n
#EXTINF:16.666667,\r\n
file0.ts\r\n
#EXTINF:8.333333,\r\n
file1.ts\r\n
#EXTINF:8.333333,\r\n
file2.ts\r\n
#EXTINF:9.133333,\r\n
file3.ts\r\n
#EXT-X-ENDLIST";
LibVLC _libVLC = new LibVLC("");
_libVLC.SetLogFile("log1.txt");
videoView1.MediaPlayer = new MediaPlayer(_libVLC);
byte[] byteArray = Encoding.UTF8.GetBytes(s);
Stream stream = new MemoryStream(byteArray);
MediaInput aa = new StreamMediaInput(stream);
Media plist = new Media(_libVLC, aa, "");
videoView1.MediaPlayer.Play(plist);
使用 LibVLCSharp 播放 m3u8 视频,形成字符串。
using(var libVLC = new LibVLC())
{
var media = new Media(libVLC, "vi/file.m3u8", FromType.FromLocation);
await media.Parse(MediaParseOptions.ParseNetwork);
using (var mp = new MediaPlayer(media.SubItems.First()))
{
var r = mp.Play();
Console.ReadKey();
}
}