c - 使用 libvlc 播放 FTP 文件

标签 c ftp libvlc

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

创建媒体和媒体播放器后,

libvlc_media_player_play

返回 0,

libvlc_media_player_get_state

返回 libvlc_Error 和

libvlc_errmsg

返回“(空)”

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

代码非常基础,与网上找到的大多数示例相同:

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);

调用 play 后,什么也没有发生。 在此先感谢您的帮助。

最佳答案

启用详细调试输出后(按照 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),导致即使对于 URI 也会调用 libvlc_media_new_path,这导致 libvlc_media_player_play 到失败,因为远程媒体的路径是伪造的。

关于c - 使用 libvlc 播放 FTP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34864746/

相关文章:

python - 无法使用基于 python 的库 ftplib 连接到本地 FTP 服务器

javascript - 使用自定义文本自动链接到代码

通过 FTP 上传 PHP - ftp_put() 我不会打开到 x.x.x.x 的连接(仅到 y.y.y.y)

actionscript-3 - VLC 语法转码和流式传输到标准输出?

go - 用libvlc播放实现previous

c - 这段代码中存在竞争条件吗?

objective-c - 如何在 Objective-C 中创建数字数组?

c - 串行设备 : Reading 8N1 works, 但写入单个字节失败

c# - 在 vlc dot net (winforms) 中设置播放速度

c++ - 如何从 OpenSSL 释放 SSL 连接?