当前位置: 首页 > 编程日记 > 正文

Android 中文API (94) —— MediaController


前言

本章内容是android.widget.MediaController,版本为Android 2.3 r1,翻译来自"唐明",再次感谢"唐明" !期待你一起参与Android 中文API的翻译,联系我over140@gmail.com。

声明

欢迎转载,但请保留文章原始出处:)

博客园:http://www.cnblogs.com/

Android中文翻译组:http://goo.gl/6vJQl

正文

一、结构

public class MediaController extends FrameLayout

java.lang.Object

android.view.View

android.view.ViewGroup

android.widget.FrameLayout

android.widget.MediaController

二、类概述

一个包含媒体播放器(MediaPlayer)控件的视图。包含了一些典型的按钮,像"播放(Play)/暂停(Pause)", "倒带(Rewind)", "快进(Fast Forward)"与进度滑动器(progress slider)。它管理媒体播放器(MediaController)的状态以保持控件的同步。

通过编程来实例化使用这个类。这个媒体控制器将创建一个具有默认设置的控件,并把它们放到一个窗口里漂浮在你的应用程序上。具体来说,这些控件会漂浮在通过setAnchorView()指定的视图上。如果这个窗口空闲3秒那么它将消失,直到用户触摸这个视图的时候重现。

当媒体控制器是在一个XML布局资源文件中创建的时候,像show() hide()这些函数是无效的。媒体播放器将根据这些规则去显示和隐藏:

* 在调用setPrevNextListeners()函数之前,"previous" "next"按钮都是隐藏的。

* 如果setPrevNextListeners()函数被调用但传入的监听器参数是null,那么"previous" "next"按钮是可见的但是处于禁用状态。

*"rewind" "fastforward"按钮是显示的,如果不需要可以使用构造函数MediaController(Context, boolean)boolean设置为false

三、公共方法

public boolean dispatchKeyEvent (KeyEvent event)

在焦点路径上分发按钮事件到下一个视图。该路径从视图树的顶端遍历到当前获得焦点的视图。如果当前视图已获得焦点,就分发给自身。否则,就分发到下一个节点的焦点路径上。这个方法也可以激发任何一个按键消息监听器。

参数

event       被分发的事件

返回值

如果这个事件被处理了返回true,否则返回false

public void hide ()

从屏幕中移除控制器。

public boolean isShowing ()

(译者注:判断媒体控制器是否处于可见状态。

public void onFinishInflate ()

XML文件加载视图完成时调用。这个函数在加载的最后阶段被调用,所有的子视图已经被添加。

即使子类重写了onFinishInflate方法,也应该始终确保调用父类方法,以便我们调用。

public boolean onTouchEvent (MotionEvent event)

实现这个方法来处理触摸屏幕引发的事件。

参数

event       动作事件

返回值

如果这个事件被处理了返回true,否则返回false

public boolean onTrackballEvent (MotionEvent ev)

实现这个方法处理轨迹球的动作事件,轨迹球相对运动的最后一个事件能用MotionEvent.getX() MotionEvent.getY()函数获取。这些都是标准化的,用1表示用户按下一个DPAD按键。(因此他们将经常使用小数值表示,为轨迹球提供更多的的细微运动信息) (译者注:DPAD按键事件: KeyEvent.KEYCODE_DPAD_CENTER(居中)、KeyEvent.KEYCODE_DPAD_DOWN(向下)、KeyEvent.KEYCODE_DPAD_LEFT(向左)、KeyEvent.KEYCODE_DPAD_RIGHT(向右)、KeyEvent.KEYCODE_DPAD_UP(向上)作比较。分别表示居中、下移、左移、右移、上移的操作。 相关链接:onTrackBallEvent方法简介

参数

ev    动作事件

返回值

如果这个事件被处理了返回true,否则返回false

public void setAnchorView (View view)

设置这个控制器绑定(anchor/)到一个视图上。例如可以是一个VideoView对象,或者是你的activity的主视图。

参数

view  将视图来绑定控制器时可见

public void setEnabled (boolean enabled)

设置视图对象的有效状态。这也可以改变子类的有效状态。

参数

enabled 如果要让这个视图对象可用就设置为true,否则设置为false

public void setMediaPlayer (MediaController.MediaPlayerControl player)

(译者注:把这个媒体控制器设置到VideoView对象上。

public void setPrevNextListeners (View.OnClickListener next, View.OnClickListener prev)

(译者注:设置"previous" "next"按钮的监听器函数。)

public void show (int timeout)

在屏幕上显示这个控制器。它将在闲置超时 (timeout)’毫秒到达后自动消失。

参数

timeout 这个参数以毫秒为单位。如果设置为0将一直显示到调用hide()函数为止。

public void show ()

在屏幕上显示这个控制器。它将在3秒以后自动消失。

四、补充

文章精选

[推荐][Android学习指南]Android多媒体(Media)

调用android api播放视频

Customize android VideoView (ii)


结束

大家抱歉!年底非常忙,有所耽误进度,进来保持最低进度,争取年前(春节)也就是下周末前完成100篇的目标,感谢大家的支持,欢迎加入我们一起来坚持这项浩大的工程。

相关文章:

数据分析奥斯卡女神们,谁是你心中的No.1?

作者 | 徐麟转载自数据森麟(公众号 ID:shujusenlin)前言在开始今天的正文前,首先带来一首经典的由奥黛丽赫本演唱的《Moon River》,也是电影《蒂凡尼的早餐》中的主题曲。一年一度的奥斯卡奖于上月落下了帷幕&#xff…

ansible组件-playbook学习笔记

playbook的基础组件 name 定义playbook或者task的名称 hosts 用于指定要执行指定任务的主机 user 用于指定远程主机上的执行任务的用户 task 任务列表 vars 定义变量 vars_files 定义变量文件 notify 任务执行结果如果是发生更改的则触发定义在handler的任务 handlers 用于当前…

【linux工具】ldconfig:linux配置动态链接库

简介 ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。 用法 ldconfig [-v|–ve…

T-SQL IN 谓词

T-SQL谓词之一 IN。检查指定(IN谓词前)的值,字段值或标量表达式是否包含在定义的一组元素(放在括弧内)中。这组元素可以有一或多个值,而不同值之间由逗点分开。 创建一个临时表,并插入一些值。 CREATETable#t( Fonts NVARCHAR(10))INSERTI…

vue:虚拟dom的实现

Vitual DOM是一种虚拟dom技术,本质上是基于javascript实现的,相对于dom对象,javascript对象更简单,处理速度更快,dom树的结构,属性信息都可以很容易的用javascript对象来表示: let element{tagN…

【Ubuntu】apt-get命令小结

apt-get install 安装软件包 apt-get remove 删除已安装的软件包(保留配置文件) apt-get update 更新 apt-get autoremove 自动删除没用的包 apt-get purge 删除包,不保留配置文件 apt-get –purge remove

腾讯58篇论文入选CVPR 2019,两年增长超200%

全球计算机视觉顶级会议 IEEE CVPR 2019(Computer Vision and Pattern Recognition,即IEEE国际计算机视觉与模式识别会议) 即将于6月在美国长滩召开。本届大会总共录取来自全球论文1299篇。中国团队表现不俗,此次,腾讯公司有超过58篇论文被本…

SQL Server 2008备份策略设计下(六)

上一篇博文探讨了各种恢复模式和备份类型,这一节继续来探讨如何设计备份策略。设计一个数据库的最佳备份策略,会面临如何选择使用哪种恢复模式的问题,因为恢复模式控制着备份和还原的行为。一般来讲,简单恢复模式一般适合用于测试…

【Qt】Qt样式表(Style Sheet):官网说明及例子

网址 http://doc.qt.io/qt-5/stylesheet.html 样式表语法 各种Qt控件的样式表例子 Qt样式表参考手册

神爱程序员,于是带来Python

“我累了,需要很长时间的休息。”2018 年 7 月,在 PEP 572(Python 改进提案) 被接受后的第三天,由于仍然不断面对着别人的质疑,反馈意见不断袭来,让这位一手缔造新的编程语言帝国的图灵奖获得者…

Dubbo配置文件详解

为新项目练手,把项目中用到的web service、RMI的服务改用DubboZookeeperSpring,网上找到几篇不错的配置详解 1.此篇博文主要从以下几种配置方式来讲 XML 配置文件方式、XML 配置文件方式、annotation 配置方式 https://www.cnblogs.com/chanshuyi/p/514…

Mono源代码学习笔记:Console类(四)

NullStream 类 (internal class) 下面就是 mcs/class/corlib/System.IO/NullStream.cs: 01: namespace System.IO 02: { 03: class NullStream : Stream 04: { 05: public override bool CanRead { get { return true; } } 06: public override b…

Java帝国对Python的渗透能成功吗?

作者 | 刘欣转载自码农翻身(公众号 ID:coderising)引子Java 帝国已经成立 20 多年,经过历代国王的励精图治,可以说是地大物博,码农众多。 可是国王依然不满足,整天想着如何继续开拓疆土&#xf…

【杂】突然有个想法,为了防止公司或其他,监视你的qq或微信,可以做个程序,将信息打乱,分别用qq和微信传输,然后,再还原

突然有个想法,为了防止公司或其他,监视你的qq或微信,可以做个程序,将信息打乱,分别用qq和微信传输,然后,再还原。

CTO 基本功大盘点 —— 没有这些技能,谈何远大前程?

本文由 「TGO鲲鹏会」原创,原文链接:CTO 基本功大盘点 —— 没有这些技能,谈何远大前程? 作者|刘海星 2018 年马上就要过去六分之一了,你的 KPI 完成多少了? 别沮丧,其实我想说的是&…

Windows Phone 7 不温不火学习之《创建用户控件》

同样出自微软的产品,像ASP.NET 一样,Windows Phone 7 也有一个叫UserControl 的东西。这个相当于一个组件,类似于Android 继承View 。 本篇将实现一个用户控件,默认为它添加高宽,并为它添加一个自己的事件,…

从起源、变体到评价指标,一文解读NLP的注意力机制

作者 | yuquanle转载自AI小白入门(ID:StudyForAI)目录1.写在前面2.Seq2Seq 模型3.NLP中注意力机制起源4.NLP中的注意力机制 5.Hierarchical Attention6.Self-Attention7.Memory-based Attention 8.Soft/Hard Attention9.Global/Local Attention10.评价指…

【Git】ubuntu上git commit提交后如何保存和退出类似vim的界面,回到命令行

问题 使用 git commit 命令后,进入类似vim的界面,开始时,不知道如何保存,甚至不知道怎么退出该界面。 解决方法 1、使用 git commit 命令后,进入的是nano文本编辑器(类似vim); 2…

linux硬盘满了问题排查

关键指令: df du find step1: 如果发现硬盘满了,首先要确定一下,使用df查看硬盘使用情况 df -h step2: 从第一步结果判定满了,确定哪些文件或哪个文件占了大头,使用du指令做逐步排查&#xff0c…

win2003登陸及關機設定

開啟未登陸可以關機鍵關機﹕ 到控制面板,本地安全策略,安全性選項﹐启用允许在未登录前关机 關關機事件跟踪﹕ 运行“gpedit.msc”命令打开组策略编辑器,依次展开“计算机配置”→“管理模板”→“系统”,将“顯示关闭事件跟踪程序…

【Qt】信号和槽对值传递参数和引用传递参数的总结

在同一个线程中 当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象;(测试时,打印传递前后的地址不同) 引用传递不会复制对象;(测试时,…

Node.js入门(含NVM、NPM、NVM的安装)

本文最初发表于博客园,并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。 以下是正文。 Node.js的介绍 引擎 引擎的特性: JS的内核即引擎。因为引擎有以下特性: (1)转化的作…

GitHub日收7000星,Windows计算器项目开源即爆红!

说起此番微软开源 Windows 计算器,有道是“春风得意马蹄疾,一日‘摘星’ 7000”……整理 | 仲培艺来源 | CSDN(ID:CSDNnews)微软又来给自己拥抱开源的决心送”证明素材“了!昨日,微软官宣在 MIT…

域环境下的***

首先还是先简要看一下域的概念吧: 域 (Domain) 是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行…

如何重构“箭头型”代码

本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得很多…

让数百万台手机训练同一个模型?Google把这套框架开源了

作者 | 琥珀出品 | AI科技大本营(公众号id:rgznai100)【导语】据了解,全球有 30 亿台智能手机和 70 亿台边缘设备。每天,这些电话与设备之间的交互不断产生新的数据。传统的数据分析和机器学习模式,都需要在…

【OpenCV】cv::VideoCapture 多线程测试

cv::VideoCapture多线程测试结果: 在多线程中使用抓取摄像头视频帧时线程安全的,但是,多个线程会共用摄像头的总帧率。 比如,我用两个线程测试30帧的摄像头,每个线程差多都是15帧。

都有Python了,还要什么编译器!

编译的目的是将源码转化为机器可识别的可执行程序,在早期,每次编译都需要重新构建所有东西,后来人们意识到可以让编译器自动完成一些工作,从而提升编译效率。但“编译器不过是用于代码生成的软机器,你可以使用你想要的…

【Qt】Qt发布程序时,报错: could not find or load the Qt platform plugin xcb

问题描述 Qt程序在发布时,报错: This application failed to start because it could not find or load the Qt platform plugin “xcb” in “”. Reinstalling the application may fix this problem Aborted (core dumped) 原因 没有将libqxcb…

jsky使用小记

jsky是一款深度WEB应用安全评估工具,能轻松应对各种复杂的WEB应用,全面深入发现里面存在的安全弱点。 jsky可以检测出包括SQL注入、跨站脚本、目录泄露、网页木马等在内的所有的WEB应用层漏洞,渗透测试功能让您熟知漏洞危害。 打开——新建扫…