gpt4 book ai didi

安卓VideoView : video goes black after being removed from parent view

转载 作者:太空狗 更新时间:2023-10-29 14:27:22 24 4
gpt4 key购买 nike

我目前正在使用 VideoView 播放 rtsp 实时流媒体源。这很好用。

VideoView 最初位于带有其他元素的 fragment 内,处于“正常”状态,我正在尝试实现全屏切换按钮。

为了进入全屏模式,我将 VideoView 从其父级(一个 LinearLayout)中移除,然后将其添加到另一个 LinearLayout,使用 getActivity().addContentView() 添加到其他所有内容之上,代码如下:

    LayoutInflater lf = getActivity().getLayoutInflater();          
vFullScreen = lf.inflate(R.layout.full_screen, myViewGroup, false);

LinearLayout fullscreenCont = (LinearLayout) vFullScreen.findViewById(R.id.fullscreen_container);

((ViewGroup) vsPlayer.getParent()).removeView(vsPlayer);

fullscreenCont.addView(vsPlayer);

LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
getActivity().addContentView(vFullScreen, params);

问题是视频从原始父 View 中移除后会变黑。

我想要实现的是保留视频实例以避免再次重新连接/缓冲,但我不知道如何在 parent 切换期间保留视频播放,有什么想法吗?

编辑:

如果我暂停 videoView 然后恢复它,就像这样:

LayoutInflater lf = getActivity().getLayoutInflater();          
vFullScreen = lf.inflate(R.layout.full_screen, myViewGroup, false);

LinearLayout fullscreenCont = (LinearLayout) vFullScreen.findViewById(R.id.fullscreen_container);

vsPlayer.getVideoView().suspend();
((ViewGroup) vsPlayer.getParent()).removeView(vsPlayer);

fullscreenCont.addView(vsPlayer);

LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
getActivity().addContentView(vFullScreen, params);
vsPlayer.getVideoView().resume();

视频播放中断(黑屏几秒钟)但随后继续播放,这要好得多,但并不完美,因为恢复播放的时间太长。

另一个不太好的部分是 VideoView 类的方法 suspend() 和 resume() 从 API 级别 8 及更高版本可用,我需要与 API 级别 7 兼容

最佳答案

您的问题是您正在使用的 VideoView 变黑并在 View 切换之间暂时徘徊吗?

如果是这样,我已经整整一周都在努力找出导致该问题的原因。我一直无法找出真正的原因,但我的解决方法确实阻止了 VideoView 在屏幕更改时持续存在:

public void hideVideoView(){        
runOnUiThread(new Runnable() {
public void run() {
findViewById(R.id.yourVideoView).setVisibility(View.INVISIBLE);
}
});
}

我基本上只是在 View 切换时将 View 设置为不可见,如果重新加载 View ,我只是将其设置回 View.Visible

关于安卓VideoView : video goes black after being removed from parent view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882857/

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