用libvlc播放FTP文件

时间:2016-01-18 21:54:25

标签: c ftp libvlc

使用libvlc播放位于FTP服务器上的媒体有正确的方法吗?

创建媒体&媒体播放器,

libvlc_media_player_play

返回0,

libvlc_media_player_get_state

返回libvlc_Error和

libvlc_errmsg

返回"(null)"

official feature page for VLC将FTP列为支持的输入& FTP链接可以使用VLC媒体播放器实例播放。

代码非常基本,与在线发现的大多数示例相同:

libvlc_media_t *m = libvlc_media_new_location( inst, "ftp://127.0.0.1:3531/path_to_movie.avi");
if ( !m )
    return false;

libvlc_media_player_t* mp = libvlc_media_player_new_from_media(m);
if ( !mp )
    return false;

libvlc_media_release(m);

libvlc_media_player_play(mp);

在比赛结束后,没有任何反应。 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

启用详细调试输出后(如gollum所示),发现问题是由于libvlc_media_t *m的错误创建造成的。

基本上我有一个URI检查器来确定链接是否包含本地文件或远程文件的路径。

libvlc_media_t *m = IsLocalFile(pszMediaPath) ? libvlc_media_new_path(inst, pszMediaPath) : libvlc_media_new_location(inst, pszMediaPath);
错误地实现了

IsLocalFile(pszMediaPath)(总是返回true),导致调用libvlc_media_new_path甚至是URI,导致libvlc_media_player_play失败,因为远程媒体的路径是假的。