首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取音频文件C#的时长

获取音频文件C#的时长
EN

Stack Overflow用户
提问于 2009-08-20 11:01:53
回答 3查看 6.4K关注 0票数 1

我正在尝试获取c#格式的音频文件的持续时间。我让下面的代码在我的本地机器上运行,但是当我将它部署到windows server2008机器上时,对于.avi和.wav文件,它总是返回持续时间0。

代码语言:javascript
复制
WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass();
    IWMPMedia mediaInfo = wmp.newMedia(filePath);
    return mediaInfo.durationString

我在服务器上安装了windows media player11。

如有任何帮助,我们将不胜感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-20 11:25:38

我没有使用"WindowsMediaPlayerClass“的经验,但我广泛地使用过TagLibSharp,这也是我尝试使用的--它支持相当广泛的格式,这使得它的应用编程接口比.NET中的内置支持更易用

http://developer.novell.com/wiki/index.php/TagLib_Sharp

很有可能仅仅使用TagLibSharp就可以解决您的问题。

(请注意,taglibsharp是由banshee项目维护的,但由于明显的历史原因,它托管在@ novell。我不知道细节,但这可能会让联系开发人员有点混乱)

票数 2
EN

Stack Overflow用户

发布于 2011-10-09 00:30:52

要检索持续时间信息,必须先打开媒体文件。

http://msdn.microsoft.com/en-us/library/windows/desktop/dd564790(v=vs.85).aspx#Y656

若要检索不在用户媒体库中的文件的持续时间,必须等待Windows Media Player打开该文件;即,当前的OpenState必须等于MediaOpen。可以通过处理AxWindowsMediaPlayer._WMPOCXEvents_OpenStateChange事件或定期检查AxWindowsMediaPlayer.openState.的值来验证这一点

该链接还包含用于C#的示例代码。

如果您不喜欢播放视频,可以使用IWMPMedia类:

http://johndyer.name/post/Retreiving-the-duration-of-a-WMV-in-C.aspx

票数 2
EN

Stack Overflow用户

发布于 2009-08-22 01:27:11

我的猜测是没有安装媒体播放器(它不是默认安装在服务器SKU上)。

您有没有尝试安装桌面体验包?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1305410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档