c++ vlc3.0 断网后还一直触发 libvlc_video_set_callbacks的回调函数
时间: 2023-12-05 21:05:39 浏览: 191
FrogPlay(vlc).zip_LIBVLC_cpp150497_soui_video player_vlc播放器
在使用 libvlc_video_set_callbacks 函数时,它会注册一个回调函数,该函数将在每个新的视频帧可用时被调用。当网络连接断开时,可能会发生以下情况:
1. 如果您已经调用了 libvlc_video_set_format 函数,则回调函数仍然会被触发,但是它将返回 NULL 帧。这意味着您的应用程序将继续运行,但不会显示任何视频。
2. 如果您没有调用 libvlc_video_set_format 函数,则回调函数可能会继续运行,因为它无法知道视频帧是否可用。在这种情况下,您的应用程序可能会崩溃或出现其他问题,因为它无法正确处理 NULL 帧。
为了避免这种情况,您可以在回调函数中添加一些逻辑,以确保视频帧已经可用并且不是 NULL。您还可以使用 libvlc_video_get_size 函数来检查视频的大小,以确保它与您的应用程序期望的大小相同。另外,您还可以使用 libvlc_media_player_is_playing 函数来检查媒体播放器是否正在播放视频。如果不是,则可以停止回调函数的触发。
最后,您还可以尝试使用 libvlc_media_player_set_nsobject 函数来将 Cocoa NSView 或 UIView 与媒体播放器关联。这将使 VLC 播放器在出现问题时自动停止回调函数的触发。
阅读全文