我设法在一个屏幕上循环播放多个视频,我使用BaseAdapter将TextureView添加到ListView,这非常常见,我为每个纹理视图创建了一个IjkMediaPlayer(IjkMediaplay github)实例。我在BaseAdapter的getView()回调中重用了textureview,一旦调用getView(),我就停止上一个视频并播放新视频。
大部分时间都可以正常工作,但偶尔,TextureView会显示一些不属于当前视频的帧,这些帧在播放过程中会像闪光一样显示很短的时间。
通过努力,我终于找到了奇怪帧的来源,它们来自在屏幕外播放的视频。 如果我向上推列表视图以显示外部纹理视图,则不会出现奇怪的帧。
我录制了一段视频来显示场景,在视频中你会看到2个视频正在循环播放,偶尔会出现一个怪异的画面。 我断言奇怪的框架(框架中桌面上的白色手机)来自下面的视频,该视频正在屏幕外播放。 click to download the video
这是Android上的TextureView的错误,以及如何避免奇怪的播放? 谁可以给我一些建议?