VLCAPI.libvlc_media_parse(libvlc_media);
IntPtr duration = VLCAPI.libvlc_media_get_duration(libvlc_media);
代码是用C#写的,先暂停(这个是必须的,相信很多人都知道),然后调用libvlc_media_get_duration方法取得视频的总时长。
但是有时会发现返回的是0,视频能正常播放,长度是0,此时建议你用vlc的播放器把那个视频打开,看看vlc播放器下面的进度条有没有时长,如果有,那可能就是代码的问题,或者vlc的dll的问题,如果也没有,那就是视频本身的问题了……总之先用vlc播放器试试,正常了再放到程序里去调试。
当然这个有问题的视频用暴风影音还是能取到时长的,但是开发用的是vlc的库,和暴风没有任何关系了……
我之前用ffmpeg将流存为flv,最后是用杀进程的方式退出的,所以导致flv文件有点问题,就是上面说的vlc读不到时长了……
折腾了一下午,才发现不是代码的问题……