我想订阅 android vlc 应用程序中的 MediaPlayer 缓冲事件。
我编辑了 EventHandler 类并取消了事件常量的注释。
public static final int MediaPlayerBuffering = 0x103; // ** uncommented this**
public static final int MediaPlayerPlaying = 0x104;
然后我在 libvlcjni.c 中添加了变量
libvlc_event_manager_t *ev = libvlc_media_player_event_manager(mp);
static const libvlc_event_type_t mp_events[] = {
libvlc_MediaPlayerPlaying,
libvlc_MediaPlayerPaused,
libvlc_MediaPlayerEndReached,
libvlc_MediaPlayerStopped,
libvlc_MediaPlayerVout,
libvlc_MediaPlayerPositionChanged,
libvlc_MediaPlayerEncounteredError,
libvlc_MediaPlayerBuffering // **added this here**
};
重新编译 jni 以获取 so 文件,然后构建 vlc 应用程序,但该事件似乎永远不会触发。
当由于带宽不足而发生缓冲事件时,我还必须链接到哪里才能触发事件。
我可以在 logcat 中看到它打印 1001 毫秒缓冲在 6 毫秒内。但这来自较低层而不是 java 层