gpt4 book ai didi

android - 在 android-vlc 中启用 MediaPlayerBuffering 事件

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:48 26 4
gpt4 key购买 nike

我想在 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层

最佳答案

必须在 libvlcjni.c 文件中添加它

else if(ev->type == libvlc_MediaPlayeBuffering) {
/* For determining the vout/ES track change */
jstring sData = (*env)->NewStringUTF(env, "data");
(*env)->CallVoidMethod(env, bundle, putFloat, sData, ev->u.media_player_buffer.new_cache);
(*env)->DeleteLocalRef(env, sData);
}

希望这对某人有帮助

关于android - 在 android-vlc 中启用 MediaPlayerBuffering 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com