我只是从DirectShow.NET开始,我正在尝试获取音频文件的长度(以秒为单位)。音频可以是.mp3,.wav,.aac或.m4a。
我可以使用DirectShow获得此信息,还是需要其他一些API?
最佳答案
是的,您可以使用DirectShow做到这一点。有多种方法可以做到这一点。一种方法是查询图形对象上的IMediaSeeking接口(interface),然后在此接口(interface)上调用GetDuration方法。
GetDuration返回一个64位整数值,表示播放文件需要多长时间。
您将需要调用GetTimeFormat
方法来找出持续时间的单位。最有可能的默认值为TIME_FORMAT_MEDIA_TIME,即十分之一秒。
在这种情况下,您可以将持续时间除以10 * 1000 * 1000得到秒。
如果要强制单位,也可以在调用SetTimeFormat
之前先调用GetDuration
。
关于audio - 使用DirectShow确定音频文件的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2205122/