首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DialogFragment中实现的videoview的MediaController没有正确更新

DialogFragment是Android中的一个类,用于创建对话框式的界面。而VideoView是Android中用于播放视频的控件,MediaController是用于控制视频播放的控制器。

在DialogFragment中实现VideoView并使用MediaController控制视频播放时,可能会遇到MediaController没有正确更新的问题。这个问题通常是由于视图的刷新机制导致的。

要解决这个问题,可以尝试以下几个步骤:

  1. 确保在DialogFragment的布局文件中正确地添加VideoView和MediaController。可以使用XML布局或者在代码中动态添加。
  2. 在DialogFragment的onCreateView方法中,通过findViewById获取VideoView和MediaController的实例。
  3. 在DialogFragment的onActivityCreated方法中,为VideoView设置视频源(setVideoURI)并启动播放(start)。
  4. 在DialogFragment的onStart方法中,为MediaController设置关联的VideoView(setMediaPlayer)。
  5. 在DialogFragment的onResume方法中,调用MediaController的show方法显示控制器。
  6. 在DialogFragment的onPause方法中,调用MediaController的hide方法隐藏控制器。
  7. 如果以上步骤无效,可以尝试在DialogFragment的onResume方法中,使用postDelayed方法延迟一段时间后再调用MediaController的show方法,例如:new Handler().postDelayed(new Runnable() { @Override public void run() { mediaController.show(); } }, 100);

通过以上步骤,可以尝试解决DialogFragment中实现VideoView的MediaController没有正确更新的问题。

关于腾讯云相关产品,腾讯云提供了丰富的云计算服务,包括但不限于云服务器、云数据库、云存储、人工智能等。具体推荐的产品和产品介绍链接地址可以参考腾讯云官方文档或者咨询腾讯云的客服人员。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(一百二十五)自定义视频播放器

该方式的好处是灵活性强,可随意定制。缺点是编码复杂,连开始/暂停的按钮都要自己实现。 2、使用VideoView结合MediaController进行播放。...VideoView其实是从SurfaceView扩展而来,并在内部集成了MediaPlayer,从而实现视频画面与视频操作的统一管理;而MediaController则是一个简单的播放控制条,它实现了基本的控制按钮...因此我们不会在布局文件中声明MediaController控件,只会声明VideoView控件,然后让控制条附着与视频视图之上。...甚至布局文件中都不用声明视频视图,而在代码中动态添加视频画面,由此便衍生出VideoView和MediaController的两种集成方式: 1、在布局文件中声明VideoView。...此时MediaController对象只需调用setMediaPlayer方法指定播放器即可。 2、在代码中动态添加VideoView。 VideoView对象的使用步骤同上。

2.8K40
  • Android实现视频播放的3种实现方式

    下面来说一下视频播放的几种实现方式: 1、MediaController+VideoView实现方式 这种方式是最简单的实现方式。...VideoView继承了SurfaceView同时实现了MediaPlayerControl接口,MediaController则是安卓封装的辅助控制器,带有暂停,播放,停止,进度条等控件。...通过VideoView+MediaController可以很轻松的实现视频播放、停止、快进、快退等功能。 布局文件如下: <?xml version="1.0" encoding="utf-8"?...); } } 使用此实现方式的步骤: 加载指定的视频文件 建立VideoView和MediaController之间的关联,这样就不需要自己去控制视频的播放、暂停等。...让MediaController控制即可。 VideoView获取焦点。 实现效果图如下: 界面中的快退、播放、快进、时间、进度条等是由MediaController提供的。

    4.8K30

    Android多媒体之视频播放器(基于MediaPlayer)

    零、前言 对于视频的播放,Android有内置的VideoView,用起来非常简单 本篇从自定义VideoView来封装MediaPlayer开始说起 VideoView android...视频处理器 SurfaceView 视频显示界面 MediaController 视频控制器 ---- 1.自定义VideoView继承自SurfaceView /** * 作者:张风捷特烈<br/...*/ public class VideoView extends SurfaceView implements MediaController.MediaPlayerControl { private...projection, "", null, "date_added desc", null); // 根据字段获取数据库中数据的索引...VideoView中的Api自己实现控制逻辑,细心一点还是不难的,就是麻烦 界面如下,不贴布局了,比较简单,也挺多的,这里说一下显示面板后5秒后隐藏的逻辑 private val mHandler

    5.5K52

    安卓直播详细教程(三)-----ijkplayer打造个性化控制界面

    自定义MediaController 首先我们先去看看ijplayer怎么做的,然后我们照葫芦画瓢,去修修改改。 一、ijplayer的demo如何实现?...从上面代码可以看出来AndroidMediaController集成自MediaController也就是说,主要功能是在android.widget.MediaController实现的。...例如可以是一个VideoView对象,或者是你的activity的主视图。...public void setMediaPlayer (MediaController.MediaPlayerControl player) 把这个媒体控制器设置到VideoView对象上。...但是当您在设备中运行应用程序时,加载的是framework.jar(大约等价于android.jar),它没有被裁减,包含所有的内部类和隐藏API。所以您可以使用反射机制来访问隐藏API和内部API

    2.5K50

    多媒体开发

    在本章节中我们就结合具体的案例针对Android中的多媒体开发相关的内容进行深入讲解,这部分内容包括音乐的播放、音效的播放、视频的播放、音频的录制以及拍照等功能的实现。 ​...可是音乐播放这种功能在Android系统中是如何实现的呢?本小节中我们就学习如何使用android.media.MediaPlayer类播放保存在apk中或SD卡中的音频文件。...其中参数priority目前还没有任何作用,Android建议我们将该参数设为1,以保持和未来版本的兼容性。...一般情况下我们常采用MediaController组件来控制视频的播放,只需要调用VideoView. setMediaController方法,即可实现使用指定的MediaControler来控制VideoView...); // 获取界面上VideoView组件 videoView = (VideoView) findViewById(R.id.​videoView​); // 创建MediaController

    7810

    你可能没有实现一个正确的atoi函数

    ,输入数值时也似乎能得到正确结果。..."-1" "+1" " " "111111111111" "" "1aab" 是不是发现并不是想象中的那样?那么实现atoi到底需要注意什么呢?...实现atoi函数需要注意什么 你可能已经注意到了,实现atoi需要考虑下面这些场景: 输入正负号 开头有空格 转换后的数值超出int的表示范围 出错时返回0与正确转换0的区别 输入非数字 空字符串 现在来看...INT_MIN:INT_MAX; } str++; } /*根据正负号返回正确的结果*/ return negative?...但这些都不是重点,重点是我们在考虑实现atoi函数的时候,需要考虑多种异常场景,这在平常实现其他功能接口的时候也是一样的。 思考 前面的代码有什么不足?你忽略了哪些场景?

    2.4K20

    使用VideoView做个实用的视频播放器

    最终效果图 最终效果图 前言 这里用VideoView写一个播放器, 可以横竖屏, 可以选文件, 可以暂停, 可以快进后退, 可以进度条拖动, 可以触屏调节音量. 来看看怎么实现的吧!...的使用 VideoView使用起来非常简单, 设置好MediaController, 然后设置URI或者是Path, 然后start开始就好....这里的要点是一些使用功能的实现. 可以查阅官方文档. 官方文档 横竖屏切换 第一步是到配置文件里面设置....这样就可以实现横竖屏切换了. 文件选择 关于文件选择器, 请查看我之前的文章. 然后就是要返回选中的文件路径. 这是Intent的常规使用了. 不多说了....手势调节音量 添加触摸监听, 然后用手势操作实现. 然后是依据上下划方向确定增大还是减小音量. 调节音量的代码也是很常规的了.

    1.4K50

    常见Linux命令的正确打开姿势 实践笔记 更新中

    常见Linux命令的正确打开姿势 实践笔记 更新中 我使用centos7X64最小化安装 CentOS-7-x86_64-Minimal-1708 1.vim: 1.vim中跳到第一行和最后一行 1....底线命令模式 2.命令模式 2.vim中清空内容 1.底线命令模式 2.命令模式 2.解压war包 1.jar 解压 war包,直接解压到当前目录 2.unzip 解压 war包,带参数-d 解压到...test.tar.gz (test.java可以是文件夹) 2.解压test.tar.gz 我使用centos7X64最小化安装 CentOS-7-x86_64-Minimal-1708 1.vim: 1.vim中跳到第一行和最后一行...1.底线命令模式 :0或:1跳到文件第一行 :$跳到文件最后一行 2.命令模式 gg跳到第一行 shift+g跳到文件最后一行 2.vim中清空内容 1.底线命令模式 %d 即可 2.命令模式 ggdG...即可 其中,gg为跳转到文件首行;dG为删除光标所在行以及其下所有行的内容; 再细讲,d为删除,G为跳转到文件末尾行;也可单独使用dG删除当前行到底部 2.解压war包 1.jar 解压 war

    1.6K21

    HIVE中数据更新(update)操作的实现

    数据更新是一种常见的操作,然后数据仓库的概念一般要求的是数据是集成、稳定的。HIVE作为一种分布式环境下以HDFS为支撑的数据仓库,它同样更多的要求数据是不可变的。...然而现实很多任务中,往往需要对数据进行更新操作,经查,Hive自0.11版本之后就提供了更新操作。于是想着试验一下,看看HIVE更新的操作和性能。 按照网上办法进行设置.   ...写入更新操作命令: update ** set name ='aaa' where id =1; 得到结果如下: 似乎这样操作,HIVE对UPDATE操作就非常好的。...其实经过实验,发现HIVE的更新机制速度非常的慢,在一个仅仅为6行的数据测试,其花费时间也要180S,这种效率肯定是无法忍受的。猜测其原因可能需要读出原有的表,进行更新,然后再写回HDFS?...另外一个非常头疼的事情是,这种HIVE环境下支持ACID的表,竟然只能在HIVE内部才能访问到,而在BEELINE或者SPARK环境下,居然是无法获得数据的。或者对外不提供接口。

    15.9K10

    TensorFlow 中 RNN 实现的正确打开方式

    上周写的文章《完全图解 RNN、RNN 变体、Seq2Seq、Attention 机制》介绍了一下 RNN 的几种结构,今天就来聊一聊如何在 TensorFlow 中实现这些结构。...这篇文章的主要内容为: 一个完整的、循序渐进的学习 TensorFlow 中 RNN 实现的方法。这个学习路径的曲线较为平缓,应该可以减少不少学习精力,帮助大家少走弯路。...cell = tf.nn.rnn_cell.MultiRNNCell([get_a_cell() for _ in range(3)]) # 3 层 RNN 这个代码在 TensorFlow 1.2 中是可以正确使用的...六、一个练手项目:Char RNN 上面的内容实际上就是 TensorFlow 中实现 RNN 的基本知识了。这个时候,建议大家用一个项目来练习巩固一下。...八、学习最新的 Seq2Seq API Google 在 TensorFlow 的 1.2 版本(1.3.0 的 rc 版已经出了,貌似正式版也要出了,更新真是快)中更新了 Seq2Seq API,使用这个

    1.4K80

    Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!

    +,gradle依赖还是4.4左右,所以导致一个问题,也是浪费了我很多时间的问题:网上的资料已经跟不上时代了,然而没有一篇最新的、最正确的jacoco+Android集成实践的博文,来给有这方面有诉求的同学指引方向...,在我费尽千辛万苦终于找到突破口并实现了之后,决定记录这个问题,为日后有需求的同学点一盏明灯!...class文件,但是在我使用的开发环境基础上,app/build/intermediates/classes根本就没有内容,这个问题阻拦了我很长一段时间,一度让我郁闷,以为是哪里配置出了问题,导致我的工程无法正确的生成...File Explorer查看files目录下coverage.ec的创建时间,一直是上一次的,刚开始我以为是缓存问题,浏览器没来得及更新,但是后来偶然发现,我天真了,如果你也碰到这种情况,把你的手机拔了...,当这个Activity执行onDestroy方法的时候通知Instrumentation生成ec文件,所以你不想根据这种思路来走完全没有问题,实现一个工具类,在你想要执行生成ec文件的时候调用即可,道理一样

    3.4K20

    开发 | TensorFlow中RNN实现的正确打开方式

    上周写的文章《完全图解RNN、RNN变体、Seq2Seq、Attention机制》介绍了一下RNN的几种结构,今天就来聊一聊如何在TensorFlow中实现这些结构,这篇文章的主要内容为: 一个完整的、...循序渐进的学习TensorFlow中RNN实现的方法。...RNN cell = tf.nn.rnn_cell.MultiRNNCell([get_a_cell() for _ in range(3)]) # 3层RNN 这个代码在TensorFlow 1.2中是可以正确使用的...六、一个练手项目:Char RNN 上面的内容实际上就是TensorFlow中实现RNN的基本知识了。这个时候,建议大家用一个项目来练习巩固一下。...八、学习最新的Seq2Seq API Google在TensorFlow的1.2版本(1.3.0的rc版已经出了,貌似正式版也要出了,更新真是快)中更新了Seq2Seq API,使用这个API我们可以不用手动地去定义

    1.3K50
    领券