gpt4 book ai didi

android - 如何使用 MediaPlayer 知道第一个视频帧何时出现在屏幕上

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:39 24 4
gpt4 key购买 nike

我正在尝试创建一个绑定(bind)了 Mediaplayer 的自定义 View 。我想要发生的是,一旦第一帧在屏幕上呈现,MediaPlayer 将暂停一两秒钟,然后完成视频。我在尝试弄清楚第一帧何时出现在屏幕上时遇到问题。我试过使用:

MediaPlayer.start() 然后紧接着 Mediaplayer.pause() - 这不起作用,因为系统需要时间来加载视频,而当我这样做时屏幕是黑色的。

OnBufferingUpdateListener - 不起作用,因为它仅适用于来自互联网的视频

OnInfoListener MEDIA_INFO_VIDEO_RENDERING_START - API 为 17,太高了。

自定义 View 中的 onDraw - 目前正在测试,我不确定如何知道何时绘制视频帧。

我目前正在做的是在我的代码中设置一个计时器等待 50 毫秒,然后在计时器完成后暂停视频一段时间。但是,这只是一个快速解决方案,而不是长期解决方案。

我认为解决此问题的唯一方法是设置某种自定义监听器或使用一种在视频帧出现在屏幕上时调用的方法。但是,我的问题是我不知道要听什么,而且我还没有找到在视频开始播放时调用的方法。因此,我们将不胜感激解决此问题的任何帮助。

最佳答案

你是对的:

mediaPlayer.start();
mediaPlayer.pause();

不在第一帧停止。

mediaPlayer.seek(0);

更新并显示第一帧,并将其保留在暂停状态。

关于android - 如何使用 MediaPlayer 知道第一个视频帧何时出现在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885175/

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