gpt4 book ai didi

android - 与 MediaPlayer 一起使用后如何清除 SurfaceTexture?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:57 68 4
gpt4 key购买 nike

我正在使用带有 TextureView 子级的 ListView。 TextureView 使用 MediaPlayer 播放视频。当 TextureView 被回收时,最后一帧保留在表面上,直到下一个 MediaPlayer 使用它。

“清除”TextureView 的表面(例如黑色)以使旧框架不出现的最简单方法是什么?

最佳答案

在为此苦苦挣扎了一段时间之后,我想出了几个可能的解决方案:

a) 使用 GLES 清理表面。您可以在 Grafika 中查看示例(查看 clearSurface() 方法)。我个人不喜欢这个,因为我不认为向黑色的刺耳过渡看起来特别好,如果您还没有使用 GL 代码,这会是相当多的技术开销。此外,这似乎只适用于 API 17+。

b) 我选择的解决方案是简单地创建一个新的 TextureView 并在每次我想播放视频时将其添加到适当的 View ,而不是重复使用旧的。我不愿将此称为解决方案,但这是我能找到的最不可怕的解决方案。

c) 如果您再次播放同一个视频,您可以做的一件事是在视频播放完毕后尝试搜索到视频的第一帧。然后下一次最后一帧闪烁时,它将不可见,因为它与视频的开头是同一帧。我在这方面取得了一些成功,但无法让它在所有设备上可靠地工作。这也很明显是一种黑客攻击。

祝你好运,尝试修复这个问题非常令人沮丧。

关于android - 与 MediaPlayer 一起使用后如何清除 SurfaceTexture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355512/

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