libvlc库常用的接口

libvlc_log_callback

作用:设置自定义的日志回调函数。

libvlc_log_callback 是 VLC 媒体播放器库(libvlc)中的一个函数指针类型,用于设置自定义的日志回调函数。VLC 媒体播放器在运行时会产生各种日志消息,包括错误、警告、通知等信息。通过设置 libvlc_log_callback,开发者可以将这些日志消息重定向到自定义的处理函数中,以便进行记录、分析或展示给用户。

声明在函数之前。

函数原型

typedef void (*libvlc_log_cb)(void *, int, const char *, const char *, va_list);

  • void *:这是传递给回调函数的用户数据指针,通常用于在回调函数中访问特定的上下文信息。

  • int:日志消息的级别,如 VLC_MSG_ERR、VLC_MSG_WARN、VLC_MSG_INFO 等。

  • const char *:产生日志消息的模块名。

  • const char *:日志消息的格式字符串,类似于 printf 风格的格式字符串。

  • va_list:一个变量参数列表,用于格式化字符串中的变量参数

使用:

void libvlc_log_callback(void* data, int level, const libvlc_log_t* ctx,const char* fmt, va_list args)

libvlc_new

作用:创建一个新的 libvlc 实例。

libvlc_new 是 VLC 媒体播放器库(libvlc)中的一个关键函数,用于创建一个新的 libvlc 实例。这个实例是后续与 VLC 媒体播放器进行交互的起点,你可以通过它来控制媒体播放、获取播放状态、设置选项等。

在构造函数初始化时使用。

函数原型

libvlc_instance_t * libvlc_new (int argc, const char * const *argv);

  • argc:传递给 VLC 的参数数量,类似于 main 函数中的参数个数。

  • argv:一个指向参数数组的指针,类似于 main 函数中的参数值数组。这些参数可以用来设置 VLC 的各种选项和配置。

返回值:

  • 如果成功,libvlc_new 返回一个指向新创建的 libvlc_instance_t 结构的指针。这个指针在后续的 VLC 操作中会被频繁使用。

  • 如果失败(例如,由于内存不足),则返回 NULL

使用:

m_instance = libvlc_new(2, args);

libvlc_log_set

作用:用于设置日志回调函数。

libvlc_log_set 是 VLC 媒体播放器库(libvlc)中的一个函数,用于设置日志回调函数,以便能够捕获和处理 VLC 在运行时产生的日志消息。这些日志消息通常包括有关媒体播放、解码、网络流等方面的信息,对于调试和错误排查非常有用。

在构造函数初始化时使用。

函数原型

void libvlc_log_set (libvlc_instance_t *p_instance, libvlc_log_cb log_cb, void *user_data);

  • p_instance:VLC 媒体播放器的实例指针,通过 libvlc_new 函数创建。

  • log_cb:自定义的日志回调函数指针,该函数必须遵循 libvlc_log_cb 的类型定义。

  • user_data:一个用户自定义的指针,可以在日志回调函数中访问,用于传递上下文信息或其他数据。

当 VLC 产生日志消息时,会调用你提供的 log_cb 回调函数,并将日志消息的详细信息(如级别、模块、格式字符串和变量参数列表)传递给该函数。你可以在回调函数中实现自定义的日志处理逻辑,例如将日志写入文件、发送到网络服务器或进行实时分析。

使用:

libvlc_log_set(m_instance, libvlc_log_callback, this);

libvlc_media_player_set_hwnd

作用:将 Windows 窗口句柄(HWND)与 VLC 媒体播放器的实例相关联。

libvlc_media_player_set_hwnd 是 VLC 媒体播放器库(libvlc)中的一个函数,用于将 Windows 窗口句柄(HWND)与 VLC 媒体播放器的实例相关联。这样,VLC 就可以在这个特定的窗口内渲染视频输出。

析构时调用。

函数原型

void libvlc_media_player_set_hwnd (libvlc_media_player_t *p_mi, void *drawable);

  • p_mi:一个 libvlc_media_player_t 类型的指针,代表一个 VLC 媒体播放器的实例。

  • drawable:一个 void * 类型的指针,在 Windows 平台上应该是一个 HWND(窗口句柄)。

在 Windows 应用程序的特定窗口中显示 VLC 播放的视频时,你需要调用这个函数,并传入该窗口的 HWND。这样,VLC 就会将视频帧渲染到这个窗口内。

使用:

libvlc_media_player_set_hwnd(m_player, NULL); //将参数2设为NULL,VLC 将停止在之前关联的窗口中渲染视频输出

libvlc_media_player_release

作用:释放一个已经创建的 libvlc_media_player_t 对象的内存。

当不再需要这个媒体播放器实例时,应该调用 libvlc_media_player_release 来释放其占用的资源,以避免内存泄漏。

函数原型

void libvlc_media_player_release(libvlc_media_player_t *p_mi);

  • p_mi:一个指向 libvlc_media_player_t 类型的指针,代表要释放的媒体播放器实例。

调用 libvlc_media_player_release 后,传递给它的 libvlc_media_player_t 指针将不再有效,不应再次使用。如果尝试访问或操作一个已经释放的媒体播放器实例,可能会导致程序崩溃或不可预测的行为。通常发生在程序退出时,或者在切换播放不同的媒体文件并创建新的媒体播放器实例之前。

使用:

libvlc_media_player_release(m_player);

libvlc_media_player_new_from_media

作用:创建一个新的媒体播放器实例,并将其与一个已经存在的 libvlc_media_t 媒体对象关联起来。

这允许直接使用一个预先配置好的媒体对象来初始化媒体播放器,而无需再次指定媒体源。

函数原型

libvlc_media_player_t * libvlc_media_player_new_from_media(libvlc_media_t *p_md);

  • p_md:一个指向 libvlc_media_t 类型的指针,代表已经创建并配置好的媒体对象。

返回值:

  • 如果成功,函数将返回一个指向新创建的 libvlc_media_player_t 类型的指针。

  • 如果失败,将返回 NULL

使用这个函数的一个常见场景是当你想要对一个媒体对象进行多次播放,或者在不同的媒体播放器实例中播放相同的媒体时。通过创建一个媒体对象,并将其与多个媒体播放器实例关联,你可以避免重复加载和解析相同的媒体文件。

使用:

m_player = libvlc_media_player_new_from_media(*m_media);

libvlc_media_get_duration

作用:获取媒体文件的总时长。

函数原型

libvlc_time_t libvlc_media_get_duration(libvlc_media_t *p_md);

  • p_md:一个指向 libvlc_media_t 类型的指针,代表媒体对象。

返回值:

  • 返回媒体的总时长,以微秒(microseconds)为单位。如果无法获取时长,则返回 0

使用:

m_duration = libvlc_media_get_duration(*m_media);

libvlc_audio_set_volume

作用:设置媒体播放器的音频音量。

函数原型

void libvlc_audio_set_volume(libvlc_media_player_t *p_mi, float volume);

函数参数

  • p_mi:一个指向 libvlc_media_player_t 类型的指针,代表媒体播放器实例。

  • volume:一个浮点数,表示音量水平,通常在 0.0(静音)到 1.0(最大音量)之间。

使用:

libvlc_audio_set_volume(m_player, m_volume);

libvlc_video_set_aspect_ratio

作用:设置视频输出的宽高比(aspect ratio)。

void libvlc_video_set_aspect_ratio(libvlc_media_player_t *p_mi, const char *psz_aspect);

函数参数

  • p_mi:一个指向 libvlc_media_player_t 类型的指针,代表媒体播放器实例。

  • psz_aspect:一个字符串,表示宽高比,例如 "16:9""4:3"

使用:

libvlc_video_set_aspect_ratio(m_player, "16:9");

libvlc_video_set_mouse_input

作用:设置是否允许通过鼠标与视频输出进行交互。

函数原型

void libvlc_video_set_mouse_input(libvlc_media_player_t *p_mi, int enabled);

函数参数

  • p_mi:指向 libvlc_media_player_t 的指针,代表媒体播放器实例。

  • enabled:一个整数值,指定是否启用鼠标输入。通常,1 表示启用,0 表示禁用。

使用:

libvlc_video_set_mouse_input(m_player, 0); //播放

libvlc_video_set_key_input

作用:设置是否允许通过键盘与视频输出进行交互。

函数原型

void libvlc_video_set_key_input(libvlc_media_player_t *p_mi, int enabled);

函数参数

  • p_mi:指向 libvlc_media_player_t 的指针,代表媒体播放器实例。

  • enabled:一个整数值,指定是否启用键盘输入。通常,1 表示启用,0 表示禁用。

使用:

libvlc_video_set_key_input(m_player, 0); //播放

libvlc_set_fullscreen

作用:设置媒体播放器是否全屏显示。

函数原型

int libvlc_set_fullscreen(libvlc_media_player_t *p_mi, int fullscreen);

函数参数

  • p_mi:指向 libvlc_media_player_t 的指针,代表媒体播放器实例。

  • fullscreen:一个整数值,指定是否全屏显示。通常,1 表示全屏,0 表示非全屏。

返回值

  • 如果成功设置全屏模式,返回 0

  • 如果设置失败,返回 -1

使用:

libvlc_set_fullscreen(m_player, 1);//播放

libvlc_set_fullscreen 函数的返回值是一个整数,可以用来检查操作是否成功。而其他两个函数没有返回值,它们仅仅执行设置操作。在调用这些函数时,请确保媒体播放器实例 p_mi 是有效的,并且已经关联了媒体源和渲染窗口。此外,也需要注意错误处理,特别是在涉及到返回值时,以确保程序能够适当地响应异常情况。

libvlc_media_player_play

作用:

该函数的作用是开始或继续播放媒体。如果媒体播放器当前处于暂停状态,调用此函数将恢复播放;如果媒体播放器当前处于停止状态,调用此函数将开始播放。

函数原型

int libvlc_media_player_play(libvlc_media_player_t *p_mi);

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

返回值

  • 如果播放成功开始或恢复,函数返回 0

  • 如果播放失败,函数返回 -1

注意事项

在调用 libvlc_media_player_play 函数之前,确保已经:

  1. 创建了一个有效的 libvlc_media_player_t 实例。

  2. 将媒体播放器与媒体对象关联起来,通常通过 libvlc_media_player_set_media 函数。

  3. 如果需要,设置了媒体播放器的输出窗口(在 Windows 上通过 libvlc_media_player_set_hwnd)。

此外,还需要注意错误处理。如果 libvlc_media_player_play 返回 -1,可能需要检查媒体文件是否有效、路径是否正确、媒体播放器是否已正确初始化等。

使用:

return libvlc_media_player_play(m_player);//播放

ibvlc_media_player_pause

作用

libvlc_media_player_pause 函数是 VLC 媒体播放器库中的一个函数,用于暂停当前正在播放的媒体。如果媒体播放器当前处于播放状态,调用此函数将暂停播放;如果媒体播放器已经暂停或停止,调用此函数将不会有任何效果。

函数原型

int libvlc_media_player_pause(libvlc_media_player_t *p_mi);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

返回值

  • 如果媒体成功暂停,函数返回 0

  • 如果暂停失败(例如,媒体未处于播放状态),函数返回 -1

注意事项

在调用 libvlc_media_player_pause 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且已经与媒体对象关联且处于播放状态。此外,还需要注意错误处理,特别是在涉及到返回值时,以确保程序能够适当地响应异常情况。

使用:

libvlc_media_player_pause(m_player);//暂停

libvlc_media_player_stop

作用

libvlc_media_player_stop 函数是 VLC 媒体播放器库中的一个函数,用于停止当前正在播放的媒体。调用此函数将中断媒体的播放,并将媒体播放器置于停止状态。

函数原型

void libvlc_media_player_stop(libvlc_media_player_t *p_mi);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

注意事项

在调用 libvlc_media_player_stop 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且已经与媒体对象关联。停止播放时,应当注意处理可能出现的任何竞争性死锁问题,特别是在多线程环境中。一种解决方案是在调用 libvlc_media_player_stop 之前销毁包含 VLC 视频窗口的子窗口,这样可以避免在停止过程中向主线程发送消息。

libvlc_media_player_stop(m_player);//停止

libvlc_audio_set_volume

作用

libvlc_audio_set_volume 函数用于设置媒体播放器的音频音量。通过这个函数,你可以控制音频输出的音量级别。

函数原型

int libvlc_audio_set_volume(libvlc_media_player_t *p_mi, int volume);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • volume:音频音量的级别,通常是一个介于 0(静音)到 100(最大音量)之间的整数。某些平台或实现可能允许超出这个范围的值,但这不是标准的。

返回值

  • 如果音量设置成功,函数返回 0

  • 如果设置失败(比如因为参数无效或媒体播放器实例无效),函数返回 -1

注意事项

在调用 libvlc_audio_set_volume 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且媒体已经加载并准备播放。此外,不是所有的媒体都有音频轨道,这个函数仅影响有音频的媒体。

使用:

int ret = libvlc_audio_set_volume(m_player, vol);//音量调节

libvlc_audio_set_mute

作用

libvlc_audio_set_mute 函数用于设置 VLC 媒体播放器的音频静音状态。通过这个函数,你可以开启或关闭媒体播放器的音频输出。

函数原型

int libvlc_audio_set_mute(libvlc_media_player_t *p_mi, int status);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • status:静音状态,通常是一个布尔值(整数)。非零值(如 1 或 true)表示静音,零值(0 或 false)表示取消静音。

返回值

  • 如果静音状态设置成功,函数返回 0

  • 如果设置失败(比如因为参数无效或媒体播放器实例无效),函数返回 -1

注意事项

在调用 libvlc_audio_set_mute 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且媒体已经加载并准备播放。此外,静音状态只影响音频输出,不影响视频的播放。

使用:

libvlc_audio_set_mute(m_player, 0);//恢复 libvlc_audio_set_mute(m_player, 1);//静音

libvlc_audio_get_mute

作用

libvlc_audio_get_mute 函数用于获取 VLC 媒体播放器的音频静音状态。这个函数返回一个值,指示音频输出当前是否被设置为静音。

函数原型

int libvlc_audio_get_mute(libvlc_media_player_t *p_mi);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

返回值

  • 如果音频处于静音状态,函数返回非零值(通常是 1)。

  • 如果音频处于非静音状态,函数返回零。

  • 如果函数执行失败(例如,由于无效的媒体播放器实例),则返回值未定义。

注意事项

在调用 libvlc_audio_get_mute 函数之前,请确保媒体播放器实例 p_mi 是有效的。此函数不会更改媒体的播放状态或音量级别,它只是简单地检索当前的静音设置。

使用:

return libvlc_audio_get_mute(m_player) == 1;

libvlc_media_player_get_time

作用

libvlc_media_player_get_time 函数用于获取当前媒体播放器的播放时间,以毫秒为单位。它返回从媒体开始播放到现在所经过的时间。

函数原型

libvlc_time_t libvlc_media_player_get_time(libvlc_media_player_t *p_mi);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

返回值

  • 函数返回当前媒体播放器的播放时间,以毫秒为单位。如果返回值为 0,可能表示媒体尚未开始播放,或者播放时间无法获取(例如,在特定类型的媒体流中)。

注意事项

在调用 libvlc_media_player_get_time 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且媒体已经加载并开始播放。此外,需要注意的是,在某些类型的媒体流(如实时流或某些格式的媒体文件)中,获取精确的播放时间可能具有挑战性或不可能。

使用:

return libvlc_media_player_get_time(m_player);

libvlc_media_get_duration

作用

libvlc_media_get_duration 函数用于获取媒体文件的总时长,单位是毫秒。这个函数可以帮助开发者了解媒体内容的长度,以便进行播放控制、进度显示等操作。

函数原型

libvlc_time_t libvlc_media_get_duration(libvlc_media_t *p_md);

函数参数

  • p_md:指向 libvlc_media_t 类型的指针,代表一个有效的媒体实例。

返回值

  • 函数返回媒体的总时长,以毫秒为单位。如果媒体时长无法获取(可能是因为媒体文件未正确加载或格式不支持),函数可能返回 0 或一个特殊的错误值。

注意事项

在调用 libvlc_media_get_duration 函数之前,请确保媒体实例 p_md 已经成功创建并关联到了相应的媒体文件。如果媒体文件正在被播放或解析,尝试获取时长可能会导致不准确的结果或错误。

此外,由于某些媒体文件可能需要先解析元数据才能获取准确的时长信息,因此在某些情况下,你可能需要先调用 libvlc_media_parse 函数来解析媒体文件,然后再调用 libvlc_media_get_duration 函数来获取时长。

使用:

m_duration = libvlc_media_get_duration(*m_media);

libvlc_media_player_set_time

作用

libvlc_media_player_set_time 函数用于设置媒体播放器的播放位置,即跳转到指定的时间点开始播放。这对于实现快进、快退、定位到特定时间等功能非常有用。

函数原型

int libvlc_media_player_set_time(libvlc_media_player_t *p_mi, libvlc_time_t time);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • time:要设置的时间点,以毫秒为单位。

返回值

  • 如果成功设置了播放位置,函数返回 0。

  • 如果设置失败(例如,因为参数无效或媒体播放器实例无效),函数返回 -1。

注意事项

在调用 libvlc_media_player_set_time 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且媒体已经加载。如果媒体播放器当前处于播放状态,调用此函数会立即跳转到指定的时间点并继续播放。如果媒体播放器处于暂停状态,调用此函数会改变播放位置,但不会自动恢复播放。

此外,需要注意的是,不是所有的媒体格式都支持精确的时间跳转。对于某些流式媒体或实时媒体,可能无法实现精确的时间定位。

使用:

libvlc_media_player_set_time(m_player, time);

libvlc_media_player_get_rate

作用

libvlc_media_player_get_rate 函数用于获取当前媒体播放器的播放速率。播放速率是指媒体播放的快慢程度,通常以正常播放速度(1.0)为基准,大于1.0表示快进,小于1.0但大于0表示慢放,等于0表示暂停。

函数原型

int libvlc_media_player_get_rate(libvlc_media_player_t *p_mi);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

返回值

  • 函数返回当前媒体播放器的播放速率,以浮点数形式表示。如果返回值为 1.0,则表示正常速度播放;大于 1.0 表示快进;小于 1.0 但大于 0 表示慢放;等于 0 表示暂停。

注意事项

在调用 libvlc_media_player_get_rate 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且媒体已经加载。播放速率可能受媒体格式、媒体播放器状态以及用户设置的影响。

使用:

return libvlc_media_player_get_rate(m_player);

libvlc_media_player_set_rate

作用

libvlc_media_player_set_rate 函数用于设置媒体播放器的播放速率。播放速率决定了媒体播放的快慢,例如,设置速率为 2.0 表示以两倍速度播放,而设置速率为 0.5 则表示以半速播放。

函数原型

int libvlc_media_player_set_rate(libvlc_media_player_t *p_mi, int rate);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • rate:要设置的播放速率,以整数形式表示。通常,1000 表示正常速度,2000 表示两倍速度,500 表示半速等。注意,不是所有的速率都会被所有媒体格式支持。

返回值

  • 如果成功设置了播放速率,函数返回 0。

  • 如果设置失败(例如,因为参数无效或媒体播放器实例无效),函数返回 -1。

注意事项

在调用 libvlc_media_player_set_rate 函数之前,请确保媒体播放器实例 p_mi 是有效的,并且媒体已经加载。不同的媒体格式可能支持的播放速率范围不同,因此,尝试设置一个不被支持的速率可能不会生效。此外,速率设置是即时生效的,也就是说,一旦调用此函数,播放器的播放速率会立即改变。

使用:

return libvlc_media_player_set_rate(m_player, rate);

libvlc_video_set_logo_string

作用

libvlc_video_set_logo_string 函数用于在视频输出上设置或更新一个覆盖的 logo 字符串。这个功能允许开发者在视频播放时,在视频画面的某个位置显示自定义的文本或水印。

函数原型

int libvlc_video_set_logo_string(libvlc_media_player_t *p_mi, const char *psz_logo);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • psz_logo:要设置的 logo 字符串。这个字符串可以包含文本、格式控制字符等,用于定义 logo 的外观和位置。

返回值

  • 如果成功设置了 logo 字符串,函数返回 0。

  • 如果设置失败(例如,因为参数无效或媒体播放器实例无效),函数返回 -1。

注意事项

  • logo 字符串的具体格式和可用的控制字符可能取决于底层的视频输出模块和渲染器。因此,在使用此函数之前,最好查阅相关的文档或测试以确定支持的格式和选项。

  • logo 字符串的设置是全局的,会影响所有使用该媒体播放器实例的视频输出。

  • logo 的位置、大小、颜色等属性可能需要在字符串中进行编码,具体取决于实现。

  • 在调用此函数之前,请确保媒体播放器实例 p_mi 是有效的,并且视频已经开始播放或至少已经初始化。

使用:

libvlc_video_set_logo_string(m_player, libvlc_logo_file, "128-128.png"); //Logo 文件名

libvlc_video_set_logo_int

作用

libvlc_video_set_logo_int 函数用于在视频输出上设置或更新一个覆盖的 logo 图片,并允许通过整数参数进行配置。与 libvlc_video_set_logo_string 不同的是,此函数可能使用内部或外部的资源标识符来指定 logo 图片,而不是一个文本字符串。

函数原型

int libvlc_video_set_logo_int(libvlc_media_player_t *p_mi, int option, int value);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • option:指定要设置的 logo 选项,这可能是一个枚举值或标识符,用于区分不同的设置项(例如,logo 图片的ID、位置、透明度等)。

  • value:与 option 对应的整数值,用于设置选项的具体内容。

返回值

  • 如果成功设置了 logo,函数返回 0。

  • 如果设置失败(例如,因为参数无效或媒体播放器实例无效),函数返回 -1。

注意事项

  • 由于这个函数的具体行为和可用的选项取决于 libVLC 的实现和版本,因此在使用之前,建议查阅最新的官方文档或相关资源以获取详细信息和示例。

  • logo 图片可能需要预先加载到内存中或以某种方式提供给 libVLC,这通常涉及到额外的步骤或API调用。

  • 在设置 logo 之前,确保媒体播放器已经初始化并且视频输出可用。

使用:

libvlc_video_set_logo_int(m_player, libvlc_logo_x, 0); //logo的 X 坐标。

libvlc_video_set_marquee_int

作用

libvlc_video_set_marquee_int 函数用于在视频播放时设置或更新一个文本字幕(通常称为“marquee”),并通过整数参数进行配置。这个字幕可以显示在视频的顶部或底部,通常用于显示一些文本信息,比如当前播放时间、标题等。

函数原型

int libvlc_video_set_marquee_int(libvlc_media_player_t *p_mi, unsigned int option, int value);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • option:指定要设置的字幕选项,这是一个无符号整数,用于区分不同的设置项(例如,显示位置、颜色、字体大小等)。

  • value:与 option 对应的整数值,用于设置选项的具体内容。

返回值

  • 如果成功设置了字幕选项,函数返回 0。

  • 如果设置失败(例如,因为参数无效或媒体播放器实例无效),函数返回 -1。

注意事项

  • 具体的 option 值和 value 的意义取决于 libVLC 的实现和版本。因此,在使用此函数之前,应查阅最新的官方文档或相关资源以获取正确的选项和值。

  • 字幕的显示样式和格式可能受到底层渲染器的限制。不是所有的样式和格式选项都会被所有平台和渲染器支持。

  • 在设置字幕之前,请确保媒体播放器已经初始化并且视频正在播放或至少已经加载。

使用:

libvlc_video_set_marquee_int(m_player, libvlc_marquee_Color, color);//颜色

libvlc_video_get_marquee_int

作用

libvlc_video_get_marquee_int 函数用于从 VLC 媒体播放器实例中获取当前设置的字幕(marquee)的整数值。这允许开发者查询字幕的特定配置选项,比如是否启用字幕、字幕的位置等。

函数原型

int libvlc_video_get_marquee_int(libvlc_media_player_t *p_mi, unsigned int option);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • option:指定要获取的字幕选项,这是一个无符号整数,用于区分不同的设置项。

返回值

  • 函数返回与指定 option 对应的整数值。如果获取失败或选项无效,返回值可能是一个错误码或未定义的值。

注意事项

  • 具体的 option 值取决于 libVLC 的实现和版本。在使用此函数之前,应查阅最新的官方文档以获取正确的选项值。

  • 如果字幕选项尚未设置或不可用,函数可能返回默认值或错误码。

  • 在调用此函数之前,请确保媒体播放器实例 p_mi 是有效的,并且已经进行了初始化。

使用:

return libvlc_video_get_marquee_int(m_player, libvlc_marquee_Enable) == 1;

libvlc_video_set_marquee_string

作用

libvlc_video_set_marquee_string 函数用于在 VLC 媒体播放器的视频输出上设置或更新一个文本字幕(marquee)的字符串内容。这个函数允许你指定要显示的文本,并且可以用来动态地更新视频上的文本信息。

函数原型

int libvlc_video_set_marquee_string(libvlc_media_player_t *p_mi, unsigned int option, const char *psz_text);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • option:指定要设置的字幕选项,通常用于指定字幕文本的显示位置或格式。不同的选项可能对应不同的文本显示方式。

  • psz_text:一个指向要设置的字幕文本的 C 字符串的指针。

返回值

  • 如果成功设置了字幕字符串,函数返回 0。

  • 如果设置失败(例如,因为参数无效或媒体播放器实例无效),函数返回 -1。

使用:

libvlc_video_set_marquee_string(m_player, libvlc_marquee_Text, text.toStdString().c_str());

libvlc_video_set_marquee_int

作用

libvlc_video_set_marquee_int 函数用于设置 VLC 媒体播放器实例的字幕(marquee)的整数值选项。这些选项通常用于控制字幕的显示方式,比如位置、颜色、字体大小等。

函数原型

int libvlc_video_set_marquee_int(libvlc_media_player_t *p_mi, unsigned int option, int value);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,代表一个有效的媒体播放器实例。

  • option:一个无符号整数,指定要设置的字幕选项。不同的选项值对应不同的字幕设置。

  • value:一个整数,代表与 option 对应的设置值。

返回值

  • 如果成功设置了字幕选项,函数返回 0。

  • 如果设置失败(例如,因为参数无效或媒体播放器实例无效),函数返回 -1。

注意事项

  • 具体的 option 值和 value 的意义取决于 libVLC 的实现和版本。在调用此函数之前,应查阅最新的官方文档或相关资源以获取正确的选项和值。

  • 不是所有的字幕选项都可以通过整数来设置。有些选项可能需要使用字符串或其他类型的数据来设置。

  • 在设置字幕选项之前,请确保媒体播放器已经初始化并且视频正在播放或至少已经加载。

使用:

libvlc_video_set_marquee_int(m_player, libvlc_marquee_Color, 0x404040);

libvlc_video_get_logo_int

作用

libvlc_video_get_logo_int 函数用于从 VLC 媒体播放器实例中获取与视频 Logo 相关的整数值设置。这通常用于查询 Logo 的当前状态、位置或其他属性。

函数原型

int libvlc_video_get_logo_int(libvlc_media_player_t *p_mi, unsigned int option);

函数参数

  • p_mi:指向 libvlc_media_player_t 类型的指针,表示有效的媒体播放器实例。

  • option:一个无符号整数,指定要查询的 Logo 选项。不同的 option 值对应不同的 Logo 设置项。

返回值

  • 函数返回与指定 option 对应的整数值。如果查询成功,则返回相应的设置值;如果查询失败或选项无效,返回值可能是未定义或特定的错误码。

注意事项

  • 在调用此函数之前,请确保媒体播放器实例 p_mi 已经初始化并且处于有效状态。

  • option 参数的具体值取决于 VLC 媒体播放器的版本和实现。请查阅 VLC 的官方文档或相关资源,以获取正确的选项值。

使用:

return libvlc_video_get_logo_int(m_player, libvlc_logo_enable) == 1;

libvlc_media_new_callbacks

作用

libvlc_media_new_callbacks 函数是 VLC 媒体播放库(libVLC)中的一个函数,用于创建一个新的媒体实例,并通过回调函数来提供媒体数据的访问。这个函数允许开发者更灵活地控制媒体数据的读取,特别是当媒体数据不是直接来自文件或网络流时。

函数原型

libvlc_media_t * libvlc_media_new_callbacks( libvlc_instance_t *p_libvlc_instance, libvlc_media_open_cb open_cb, libvlc_media_read_cb read_cb, libvlc_media_seek_cb seek_cb, libvlc_media_close_cb close_cb, void *opaque );

函数参数

  • p_libvlc_instance:指向 VLC 实例的指针,这个实例必须在使用这个函数之前已经被初始化。

  • open_cb:一个指向媒体打开回调函数的指针,当媒体需要打开时会被调用。

  • read_cb:一个指向媒体读取回调函数的指针,当媒体需要读取数据时会被调用。

  • seek_cb:一个指向媒体定位回调函数的指针,当媒体需要定位到特定位置时会被调用。

  • close_cb:一个指向媒体关闭回调函数的指针,当媒体不再需要时会被调用。

  • opaque:一个指向任意数据的指针,这个数据会被传递给所有的回调函数。这通常用于在回调函数中访问特定的上下文或状态信息。

返回值

如果成功创建媒体实例,函数返回一个指向 libvlc_media_t 类型的指针。如果创建失败,返回 NULL

注意事项

  • 回调函数必须遵循 libVLC 定义的特定签名和行为。开发者需要确保回调函数能够正确地处理媒体数据的读取、定位和关闭操作。

  • 使用 libvlc_media_new_callbacks 创建的媒体实例需要在使用完毕后通过 libvlc_media_release 来释放,以避免内存泄漏。

  • 回调函数中的错误处理非常重要,因为如果回调函数返回错误,可能会导致媒体播放失败或不稳定。

使用:

media = libvlc_media_new_callbacks( instance, &vlcmedia::open, &vlcmedia::read, &vlcmedia::seek, &vlcmedia::close, this);

  • 36
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值