使用 libvlc 播放 FTP 文件
Playing FTP file with libvlc
是否有使用 libvlc 播放位于 FTP 服务器上的媒体的正确方法?
创建媒体和媒体播放器后,
libvlc_media_player_play
returns 0,
libvlc_media_player_get_state
returns libvlc_Error 和
libvlc_errmsg
returns“(空)”
official feature page for VLC 将 FTP 列为受支持的输入并且 FTP link 可以使用 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);
调用播放后,没有任何反应。
在此先感谢您的帮助。
启用详细调试输出后(按照 gollum 的建议),发现问题是由于错误创建 libvlc_media_t *m
。
基本上我有一个 URI 检查器来确定 link 是否包含本地文件或远程文件的路径。
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
失败,因为远程媒体的路径是伪造的。
是否有使用 libvlc 播放位于 FTP 服务器上的媒体的正确方法?
创建媒体和媒体播放器后,
libvlc_media_player_play
returns 0,
libvlc_media_player_get_state
returns libvlc_Error 和
libvlc_errmsg
returns“(空)”
official feature page for VLC 将 FTP 列为受支持的输入并且 FTP link 可以使用 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);
调用播放后,没有任何反应。 在此先感谢您的帮助。
启用详细调试输出后(按照 gollum 的建议),发现问题是由于错误创建 libvlc_media_t *m
。
基本上我有一个 URI 检查器来确定 link 是否包含本地文件或远程文件的路径。
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
失败,因为远程媒体的路径是伪造的。