windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长
我们先看一段代码,获取mp3播放时长:
#region GetMediaDetailInfo 获取媒体文件属性信息
/// <summary>
/// 获取媒体文件属性信息
/// </summary>
/// <param name="path">媒体文件具体路径</param>
/// <param name="icolumn">具体属性的顺序值(-1简介信息 1文件大小 21时长 22比特率)</param>
/// <returns></returns>
public static string GetMediaDetailInfo(string path, int icolumn)
{
try
{
ShellClass sh = new ShellClass();
Shell32.Folder folder = sh.NameSpace(Path.GetDirectoryName(path));
Shell32.FolderItem folderItem = folder.ParseName(Path.GetFileName(path));
string len;
if (Environment.OSVersion.Version.Major >= 6)
{
len = folder.GetDetailsOf(folderItem, 27);
}
else
{
len = folder.GetDetailsOf(folderItem, 21);
}
string[] str = len.Split(new char[] { ':' });
int sum = 0;
sum = int.Parse(str[0]) * 60 * 60 + int.Parse(str[1]) * 60 + int.Parse(str[2]);
return sum.ToString() + "&" + len;
}
catch
{
return null;
}
}
#endregion
调用代码:
var times=GetMediaDetailInfo(HttpContext.Current.Server.MapPath(filePath), 21);
在项目测试应该是可以的,还有就是引用的dll文件版本:Interop.Shell32.dll 最好是1.2版本,因为有些系统版本较高,所以还是还成新的dll。
dll下载地址:http://download.csdn.net/detail/lilinoscar/9462057
引用Interop.Shell32.dll 后需要更改“嵌入互操作类型”为False,更改如下图:
到了此处,我们运行项目,可以获取mp3的播放长度,应该是没有什么问题了,那就错啦,一发布到服务器,发现根本是无法获取,什么原因?只有在win7、win8等系统可以使用。
难道是没有安装office或者别的配置不对吗?,那就百度上网查找原因?
你会发现网上也没有很多这方面的解决办法,最多是让你换一种方式,使用ffmpeg去获取音乐时间,而且增加麻烦以及代码量。
原因:
服务器和我们使用的系统不同,有些软件和配置默认是不安装,需要我们手动去安装,因为服务器不需要用户桌面体验,毕竟又不常操作次系统,所以服务器是不默认安装“优质windows音频视频体验”和“桌面体验”。而win7是默认安装,这就是原因。
解决办法:
开始菜单=》管理工具=》服务器管理器=》功能=》添加功能,找到“优质windows音频视频体验”和“桌面体验”勾选即可。
windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长的更多相关文章
- Windows Server 2008 R2 服务器系统安装及配置全过程图文详解
前言 本文主要介绍了 windows Server 2008 R2 服务器系统的安装及相关配置. 介绍的是以优盘的方式安装. 写这篇博文的目的一来是为了供有需要的网友参考, 二来自己也在此做个记载. ...
- Windows Server 2008 R2 服务器内存使用率过高几乎耗光
系统环境: Windows Server 2008 R2 Enterprise 搭建有 web服务器(iis) 和 文件服务 问题描述: Windows Server 2008 R2系统内存耗光 ...
- vSphere Client 搭建Windows server 2008 r2 服务器指南
下载准备 下载并安装vSphere Client 链接:https://pan.baidu.com/s/1v0IrGrMjpA2FGeqagaJN-g 密码:zzd1 下载Windows server ...
- Windows Server 2008 R2服务器系统安全设置参考指南
Server 2008 R2服务器系统安全设置参考指南 重点比较重要的几部 1.更改默认administrator用户名,复杂密码 2.开启防火墙 3.安装杀毒软件 1)新做系统一定要先打上补丁(升 ...
- Windows Server 2008 R2服务器遗忘管理员密码解决方案
A goal is a dream with a deadline. Much effort, much prosperity. 在日常的工作中,对于一个网络管理员来讲最悲哀的事情莫过于在没有备用 ...
- Windows Server 2008 R2服务器内存使用率过高,但与任务管理器中进程占用内存和不一致
系统环境: Windows Server 2008 R2 + Sql Server 2008 R2 问题描述: Windows Server 2008 R2系统内存占用率过大,而在任务管理器中各进 ...
- Windows Server 2008 R2 服务器系统安装图文教程
https://www.jb51.net/os/535658.html http://www.machenike.com/article.php?id=207
- [教程] Windows Server 2008 R2架设SMTP服务器发送邮件教程
Windows Server 2008 R2 架设SMTP服务器实现邮件发送 目的:架设SMTP服务器实现邮件发送. 一.域名设置 添加“邮件交换记录(MX)”: Newjs.cn ...
- Windows Server 2008 R2防火墙出站规则
出战规则指Windows Server 2008 R2系统访问外部的某台计算机通信数据流. 配置防火墙阻止Windows Server 2008 R2系统通过IE软件访问外部的网站服务器,阻止Wind ...
随机推荐
- Django & JavaScript 用Ajax实现JSON数据的请求和响应
[描述] 1.Server端定义了两个字段:Article.title 和 Article.content 2.客户端用JavaScript Ajax异步加载请求服务器的JSON数据 效果是点击按钮从 ...
- 我的第二本译作《精通OpenStack》上架啦:书籍介绍和译者序
1. 书籍简介 英文书名:Mastering OpenStack Second Edition 作者:[德] 奥马尔-海德希尔(Omar Khedher)[印] 坚登-杜塔-乔杜里(Chanda Du ...
- Android-动态权限获取
声明权限: 首先在清单文件中写出相应权限 <!--存储权限--> <uses-permission android:name="android.permission.WRI ...
- PHP 验证身份证
function isCreditNo($vStr) { $vCity = array( '11','12','13','14','15','21','22', '23','31','32','33' ...
- django——CRM项目
1.引言 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销售循环 ...
- EasyUI 分页 偶遇 问题
当 存在大量 重复 数据字段的 时候 entity.AsNoTracking().ToList().Skip((page.pageNumber - 1) * page.rows).Take(page. ...
- 关于ajaxFileUpload图片上传,success和error都触发的情况
最近做到项目使用JQuery的插件ajaxFileUpload~~~ 遇到了非常领人匪夷所思的事情,当图片上传成功之后呢(success),它的error事件也被触发了,情况就是: 后端数据正确返回 ...
- (95)Wangdao.com_第二十八天_进度事件
进度事件 进度事件 用来描述资源加载的进度, 主要由 AJAX 请求.<img>.<audio>.<video>.<style>.<link> ...
- [LeetCode] Insert into a Binary Search Tree 二叉搜索树中插入结点
Given the root node of a binary search tree (BST) and a value to be inserted into the tree, insert t ...
- linux中启动 java -jar 后台运行程序
直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉.以下方法可让jar运行后一直在后台运行. 1. java -jar xxx.jar & 说明: 在末尾加入 ...