vlc3 等待播放完成 不用事件的话
时间: 2023-07-27 18:09:43 浏览: 92
在 VLC 3 中,你可以使用 `libvlc_media_player_is_playing` 函数来判断媒体是否正在播放。你可以使用一个 while 循环来等待播放完成,这样就不需要事件了。下面是一个简单的示例代码:
```c
libvlc_instance_t *vlc;
libvlc_media_player_t *mp;
libvlc_media_t *m;
// 初始化 VLC
vlc = libvlc_new(0, NULL);
m = libvlc_media_new_path(vlc, "/path/to/media/file");
mp = libvlc_media_player_new_from_media(m);
// 播放媒体
libvlc_media_player_play(mp);
// 等待媒体播放完成
while (libvlc_media_player_is_playing(mp)) {
// 空循环
}
// 释放资源
libvlc_media_player_stop(mp);
libvlc_media_player_release(mp);
libvlc_media_release(m);
libvlc_release(vlc);
```
在上面的代码中,我们先使用 `libvlc_media_player_play` 函数播放媒体,然后使用 while 循环判断媒体是否正在播放。如果正在播放,我们就继续循环。当媒体播放完成后,`libvlc_media_player_is_playing` 函数会返回 false,while 循环就会退出。最后,我们释放资源,停止播放并释放相关的结构体。