LunVlc
LunVlc copied to clipboard
编译vlc使用的问题
大神,我翻了很多开源都没有好的支持截图和录像的项目,而且很多对视频播放支持都没你的好,我决定自己编译,我的计划是这样的: 1、编译出自己的so库。 2、替换你的so库运行看是否报错。 3、继续编译自己的so库同时加入截图和录像功能。 4、继续替换so库。 现在第一步已经成功了,编译出来的vlc版本是2.1.11,但是到第二步报错: JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no non-static method "Lorg/videolan/libvlc/VLCObject;.dispatchEventFromNative(IJJF)V" 是因为版本差异吗?有办法解决吗?还是本来就不能这样混用呢,,,求回复........
比较奇怪看日志是执行到System.loadLibrary("vlcjni");报的错。 还有上面编译出来的vlc版本是2.1.11是说编译出来的apk版本是2.1.11,不知道so库是不是也叫这个版本。。
不好意思回复晚了,首先你要确定你编译成功了,第二如果你要使用你自己编译的so,那么需要把java调用jni的代码一并替换了,因为版本不同,代码可能有修改,第三,vlc应该有自带截图功能,你可以参考vlc官方播放器的源码(就在编译成功的文件里面)。
@Mtlun 是的确定编译成功了,因为编译出来的apk能正常使用。vlc是有自带的截图录像功能,下一步就是打算编译这个。但是现在编译出来的so用不上进行下一步也没用。还有我想问下为什么你的项目能流畅播放我的链接而其他的不行呢,是因为so库的原因还是你封装的时候做了什么操作呢?因为这样我才想编译一个支持截图和录像的so库来替换你现在的so库。
你看看你有没有开启硬解码,硬解码肯定比软解码好,但是有些手机本身不支持硬解码,这个需要自己去判断,具体参数你可以参考CustomVLCVideoView的代码; 另外如果vlc支持截图和录像的话,我编译的版本应该也是支持的.你可以先在我的代码上debug.这样就不用浪费时间在编译和调试参数上.
@Mtlun 虽然vlc支持截图和录像,但是一般的编译步骤是没有把这两个功能编译进去的,我查资料好像是编译成功之后改一些代码再编译才能集成截图和录像,就是打补丁的样子,支持截图和录像的话在LibVLC.java文件中是可以看到截图和录像的方法的。比如这个库(https://github.com/CoffeeTL/rtsp),可惜对播放支持不好。我现在在参考你的代码调用自己编译的so库,出现播放窗口很小的问题,应该是跟你比其他人多封装了AWindowNativeHandler的关系,目前在复制代码调试中。。。。。
@Mtlun 我加了AWindowNativeHandler之后播放黑屏了。。。。我是在用比较简单的方式调用播放可以正常播放,mediaPlayer.setAspectRatio("16:9");这个方法设置视频比例,但是没有找到设置全屏和铺满的参数,你知道吗?