vlc_android中获取视频播放状态
2013-03-07 18:38
399 查看
vlc中视频的状态有以下几种:
可什么是is playing呢?在vlc 源码中,能看到
(state == libvlc_Opening) || (state == libvlc_Buffering) ||
(state == libvlc_Playing)这三个状态是isPlaying。
有时候我们的需求更细致,如果要在网络视频播放之前加上一个ProgressBar,视频开始播放就取消ProgressBar,这时就必须知道libvlc_Playing何时出现。
为了获得更细分的状态,只有自己修改libvlcjni.c了,在该文件最后加上jint Java_org_videolan_vlc_LibVLC_getState(JNIEnv *env, jobject thiz)
{
libvlc_media_list_player_t *mp = getMediaListPlayer(env, thiz);
if (mp){
libvlc_state_t state=libvlc_media_list_player_get_state(mp);
return (jint)state;
}
else
return -1;
}
在LibVLC.java中增加native函数:
例子如下,
int libvlc_NothingSpecial=0; int libvlc_Opening=1; int libvlc_Buffering=2; int libvlc_Playing=3; int libvlc_Paused=4; int libvlc_Stopped=5; int libvlc_Ended=6; int libvlc_Error=7;vlc_android 中的LibVLC.java没有取得这些状态的接口,只有一个
/** * Returns true if any media is playing */ public native boolean isPlaying();
可什么是is playing呢?在vlc 源码中,能看到
(state == libvlc_Opening) || (state == libvlc_Buffering) ||
(state == libvlc_Playing)这三个状态是isPlaying。
有时候我们的需求更细致,如果要在网络视频播放之前加上一个ProgressBar,视频开始播放就取消ProgressBar,这时就必须知道libvlc_Playing何时出现。
为了获得更细分的状态,只有自己修改libvlcjni.c了,在该文件最后加上jint Java_org_videolan_vlc_LibVLC_getState(JNIEnv *env, jobject thiz)
{
libvlc_media_list_player_t *mp = getMediaListPlayer(env, thiz);
if (mp){
libvlc_state_t state=libvlc_media_list_player_get_state(mp);
return (jint)state;
}
else
return -1;
}
在LibVLC.java中增加native函数:
public native int getState();编译vlc android源码,就能得到libvlcjni.so了,加入你的项目中即可。
例子如下,
load(url); loadingDialog = ProgressDialog.show(this, "", "加载中,请稍等 …", false, true); new Thread(new Runnable() { @Override public void run() { while (true) { try { Thread.sleep(1000); Log.d(TAG,"progress dialog():"+mLibVLC.getState()); if(mLibVLC != null &&mLibVLC.getState()==LibVLC_State.libvlc_Playing){ loadingDialog.dismiss(); break; } } catch (InterruptedException e) { e.printStackTrace(); } } } }).start();
相关文章推荐
- android 多线程下载+GreenDao保存状态+ijkplayer播放缓存后的视频
- Android 视频播放状态链控制简单实现
- 亲测可用的android基于vlc开发的音视频播放库。
- Android 如何调用vlc直接播放对应视频
- Android使用VideoView播放网络视频,获取网络视频缩略图
- 【Android组件】---之---VLC视频播放组件
- android UiAutomator获取视频播放进度的方法
- [总结]Android 获取本地视频文件路径并播放的几种方式
- 解决vlc-android播放http视频退出问题
- 通过surface.screenshot函数可以获取android视频播放的屏幕截图
- [Android算法] 实现获取视频的缩略图(ThumbnailUtils),并且播放
- Android 播放视频并获取指定时间的帧画面
- 请教:Android正播放视频时的解码输出流如何获取?
- Android使用VideoView播放网络视频,获取网络视频缩略图
- Android中通过网络获取json数据来播放视频
- vlc for Android播放视频第一帧出画面慢。
- Android 获取播放视频的相关 内容,  分辨率, 方向,作者信息
- 【Android组件】---之---VLC视频播放组件
- Android如何获取assets或者raw目录的视频文件路径播放视频
- 200分 android-vlc播放视频