收到错误ObjectDisposedException:加密视频流时无法访问关闭的流

时间:2019-03-11 10:55:59

标签: asp.net encryption asp.net-core

我正在尝试使用webapi即时加密视频流。

我从IP网络摄像头读取了一个流,我想对其进行加密(例如,使用System.Security.Cryptography.Rijndael)并返回加密的流。

我将拥有另一个应用程序来解密该流并将其显示给用户(重点是对IP网络摄像头进行加密以通过Internet发送安全的流)。

我有这两个代码部分:

在我的EncryptionService中:

public Task<Stream> Encode(webcamUrl, Stream output){
[...Rijndael creation...]
     using (var client = new HttpClient()) 
     using (StreamReader originVideo = new StreamReader(await                
     client.GetStreamAsync(webcamUrl))) 
     { 
         var originalVideoBuffer = new char[4096]; 
         await originVideo.ReadAsync(originalVideoBuffer, 0, 4096); 

         using (CryptoStream csEncrypt = new CryptoStream(output, encryptor, CryptoStreamMode.Write)) 
         using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) 
             await swEncrypt.WriteAsync(originalVideoBuffer); 
    }
}

在我的控制器中:

public async Task<FileStreamResult> GetEncoded()
    {
        using (var ms = new MemoryStream())
        {
            await _encoderService.GetEncodedVideoStream("https://webcam_ip/", ms);
            return new FileStreamResult(ms, "text/plain");
        }  
    }

问题,il出现错误“ ObjectDisposedException:无法访问关闭的Stream。”。

您是否知道如何解决?或者,也许还有另一种方法,更简单?

0 个答案:

没有答案