Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将新曲面附着到LibVLC时出现的问题_Android_Vlc_Libvlc - Fatal编程技术网

Android 将新曲面附着到LibVLC时出现的问题

Android 将新曲面附着到LibVLC时出现的问题,android,vlc,libvlc,Android,Vlc,Libvlc,我在Android应用程序中使用libvlc0.9.9已经有一段时间了。除了在调用vlc.stop()时在某些情况下挂起4.4设备和以下设备外,它一直运行良好。问题似乎与此处的链接有关: 我已尝试升级到最新版本,除在设备轮换期间外,所有操作都正常。以下是我正在使用的策略 我正在活动中使用retainedFragment。我正在保留碎片内创建vlc播放器。在轮换时,我允许销毁活动,并重新连接保留的片段。我这样做的原因是,纵向和横向的视图完全不同。我更愿意使用这种方法,而不是不允许活动被破坏,并且必

我在Android应用程序中使用libvlc0.9.9已经有一段时间了。除了在调用vlc.stop()时在某些情况下挂起4.4设备和以下设备外,它一直运行良好。问题似乎与此处的链接有关:

我已尝试升级到最新版本,除在设备轮换期间外,所有操作都正常。以下是我正在使用的策略

我正在活动中使用retainedFragment。我正在保留碎片内创建vlc播放器。在轮换时,我允许销毁活动,并重新连接保留的片段。我这样做的原因是,纵向和横向的视图完全不同。我更愿意使用这种方法,而不是不允许活动被破坏,并且必须手动添加和删除纵向视图与横向视图。我这样做也是为了让视频在后台播放,同时等待新的曲面出现

在0.9.9中,我能够在SurfaceDestroyed()中调用libvlc.detach(),在SurfaceChanged()中调用libvlc.attachSurface(mSurface,this)。通过这样做,libvlc将自身附加到新创建的曲面上。但是,我尝试过的新版本libvlc(包括最新版本)将不会重新附着到新创建的曲面。下面是日志中显示内容的示例

04-13 14:05:18.860 14767-15341/com.sparc.stream E/表面﹕ 退出队列缓冲区失败(没有此类设备) 04-13 14:05:18.860 14767-15341/com.sparc.stream W/VLC﹕ [7d8909cc]yuv_rgb_霓虹灯过滤器:无法获取输出图片

我不确定是否有其他人在使用保留片段方法,但如果是这样的话,您是否可以分享一下您是否已经使用了这个方法。如果有帮助的话,我可以发布代码示例

谢谢


泰勒

我在VLC论坛上得到了答案。如果其他人有这个问题,这里是答案

libvlc的最新版本添加了一个setVideoTrack()方法

要将玩家设置为新曲面,您可以:

setVideoTrack(-1);
设置视频跟踪(0)//如果您的视频曲目为1,则为1