【发布时间】:2017-10-26 01:31:44
【问题描述】:
我在我的 C# Win Forms 应用程序中使用 taglib-sharp 库来检索 MP3 文件的持续时间和比特率。代码 sn-p 如下:
TagLib.File tagFile = TagLib.File.Create(myMp3FileName);
int bitrate = tagFile.Properties.AudioBitrate;
string duration = tagFile.Properties.Duration.Hours.ToString("D2") + ":" +
tagFile.Properties.Duration.Minutes.ToString("D2") + ":" +
tagFile.Properties.Duration.Seconds.ToString("D2");
我现在还想确定文件是单声道还是立体声。为此,我想我需要阅读 ChannelMode(0 = Stereo,1 = JointStereo,2 = DualChannel,3 = SingleChannel)。唯一的问题是我不知道如何访问它。调试代码的时候可以看到ChannelMode in the watch window。
但事实证明,访问它很困难。我只做到了这一点:
var codec = (((TagLib.ICodec[])tagFile.Properties.Codecs).GetValue(0));
当我运行这个时,我可以看到codec in the debugger's watch window,在它下面是ChannelMode。
我倾向于认为此时我应该能够阅读 codec.ChannelMode,但这显然不是正确的语法。我得到这个编译器错误:
错误 CS1061“object”不包含“ChannelMode”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“ChannelMode”(您是否缺少 using 指令或程序集引用?)
我做错了什么?
提前致谢,
迈克。
【问题讨论】:
标签: c# taglib taglib-sharp