我有以下代码来检索上传视频的持续时间:
HttpPostedFileBase postedFileCopy = postedFile;
postedFileCopy.InputStream.Position = 0;
Stream stream = postedFile.InputStream;
LocalResource tempDirectory = RoleEnvironment.GetLocalResource("TempZipDirectory");
postedFile.SaveAs(tempDirectory.RootPath + @"\" + postedFile.FileName);
ShellFile so = ShellFile.FromFilePath(tempDirectory.RootPath + @"\" + postedFile.FileName);
string durationString;
double nanoseconds;
double.TryParse(so.Properties.System.Media.Duration.Value.ToString(),out nanoseconds);
if (nanoseconds > 0)
{
int totalSeconds = (int)Math.Round((nanoseconds / 10000000), 0);
int seconds = totalSeconds % 60;
int minutes = totalSeconds / 60;
int hour = totalSeconds / (60 * 60);
durationString = "" + hour + ":" + minutes + ":" + seconds;
}
else
{
System.Diagnostics.EventLog.WriteEntry("Application", "BLANK DURATION STRING", System.Diagnostics.EventLogEntryType.Error);
durationString = "00:00:00";
}
这在 localhost 上按预期工作,但是当放到 Azure 存储中时,它似乎无法检索文件的详细信息。这
postedFile.SaveAs(tempDirectory.RootPath + @"\" + postedFile.FileName);
将上传保存到目录,这样我就可以获取这些详细信息,但无论我尝试什么,当存储在天蓝色时,我似乎都无法返回纳秒。这是一个部署的 MVC 应用程序,临时目录存储在服务器的 C:/ 驱动器上。