【问题标题】:Playing FTP file with libvlc使用 libvlc 播放 FTP 文件
【发布时间】:2016-04-24 05:10:12
【问题描述】:

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

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

libvlc_media_player_play

返回 0,

libvlc_media_player_get_state

返回 libvlc_Error,并且

libvlc_errmsg

返回“(空)”

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

调用 play 后,什么也没有发生。 提前感谢您的帮助。

【问题讨论】:

  • 只有 ftp 失败了吗? http:// 有效吗?如果尚未完成,您应该使用或附加 libvlc_new() 中的 -v 参数以获得详细的调试输出。

标签: c ftp libvlc


【解决方案1】:

启用详细调试输出后(按照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 失败,因为远程媒体的路径是虚假的。

【讨论】:

    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 2018-08-22
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2012-04-24
    • 1970-01-01
    相关资源
    最近更新 更多