Android MediaController

分享到:

MediaController控件实现了Android多媒体播放器各种控制功能,像"播放(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。

MediaController常用方法

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基础知识
Android组件
Android实例