LIBVLC下获取视频和设置视频的播放位置问题
有一个项目用到了播放器,所以选用了VLC,为的简单快速可以搭建起运行平台,vlc在完整度和功能上都是比较不错的选择。但是在使用过程中碰到了一个问题,正常播放流程是这样的:
libvlc_instance_t* inst = libvlc_new(0, NULL);
libvlc_media_t* pMedia = libvlc_media_new_path(inst, "test.mp4");
libvlc_media_player_t* pMediaPlayer = libvlc_media_player_new_from_media(pMedia);
libvlc_media_release(pMedia);
pMedia = NULL;
libvlc_media_player_play(pMediaPlayer);
那么如果要获取视频的时长的时候,需要增加一句
libvlc_time_t mediaLength = libvlc_media_player_get_length(pMediaPlayer);
如果将这行写在
libvlc_media_player_play(pMediaPlayer)
之前,则会发现mediaLength
的到的时间长度为0,这是因为在没有做libvlc_media_player_play(pMediaPlayer)
的时候,视频并没有开始解析,所以视频中的长度信息还没有获取到,所以必须调用play后才能获取到视频的长度。同样的,在设置和获取视频播放位置的时候,也需要在play以后进行。以上文档基于libvlc2.1,其他版本有待验证。