gpt4 book ai didi

Android VideoView 在 stopPlayback() 后清除显示

转载 作者:IT老高 更新时间:2023-10-28 22:17:39 37 4
gpt4 key购买 nike

我正在使用 VideoView 组件来播放视频。手动调用 stopPlayback() 后,我似乎无法清除 VideoView 显示。我想重置 VideoView 以使原始背景可见。

  1. 在 VideoView 组件中播放视频。
  2. 选择要播放的新视频。
  3. VideoView 停留在第一个视频的最后一帧,直到下一个视频开始。如果下一个视频出现错误,则第一个视频中的静态图像仍然卡在那里。
  4. 如果我让视频播放到完成状态,则显示被清除。

我正在使用的代码:

private VideoView videoViewer = null;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
if (videoViewer != null) {
videoViewer.setOnPreparedListener(new OnPreparedListener());
}
...
}

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (videoViewer != null) {
videoViewer.stopPlayback();
videoViewer.setVideoURI(Uri.parse("http://my_vido_url/playlist.m3u8"));
}
}

private class OnPreparedListener implements MediaPlayer.OnPreparedListener {
@Override
public void onPrepared(MediaPlayer mp) {
videoViewer.start();
}
}

请注意,基于 VideoView.java 源,stopPlayback() 对底层 MediaPlayer 执行以下操作:

public void stopPlayback() {
if (mMediaPlayer != null) {
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = null;
}
}

最佳答案

对我来说,有效的方法是使用 setVisibility 隐藏然后显示 VideoView .

public void clearCurrentFrame() {
videoView.setVisibility(GONE);
videoView.setVisibility(VISIBLE);
}

这是因为我希望 VideoView 变得透明,而不是纯色。将背景设置为透明不起作用 - 视频帧仍然显示。

关于Android VideoView 在 stopPlayback() 后清除显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767742/

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