前言
MediaController与VideoView配套使用,基本能实现播放界面的主要功能,大家可用参考 OPlayer的代码实现。
声明
欢迎转载,但请保留文章原始出处:)
Vitamio:http://www.vitamio.org
农民伯伯: http://www.cnblogs.com/over140/
正文
MediaController
整理:农民伯伯
类概述
public class MediaController extends FrameLayout
一个包含媒体播放器(MediaPlayer)的媒体控制条。通常包括“播放/暂停”和SeekBar。它管理MediaPlayer的状态以保持控件的同步。
使用这个类的方法:
a). 通过编程来实例化这个类。
这个媒体控制器将创建一个具有默认设置的控件,并把它们放到一个窗口里漂浮在你的应用程序上。具体来说,这些控件会漂浮在通过setAnchorView()指定的视图上。如果这个窗口空闲3秒那么它将消失,直到用户触摸这个视图的时候重现。要自定义MediaController的风格、布局和控件,你可以扩展MediaController覆盖makeControllerView方法。
b). 通过xml布局创建。
MediaController是一个FrameLayout,你可以把它放到你的布局中并通过findViewById来获得。
备注:如果你想自定义MediaController,SeekBar的id必须是“mediacontroller_progress”、暂停/播放必须是“mediacontroller_pause”、当前时间必须是“mediacontroller_time_current”,总时间必须是“mediacontroller_time_total”、文件名称必须是“mediacontroller_file_name”。并且还必须有pause_button和play_button资源(drawable)。
当MediaController通过xml 布局创建时,像show()、hide()这些函数是无效的。
公共方法
public void onFinishInflate()
从XML加载完所有子视图后调用。初始化控制视图(调用initControllerView方法,设置事件、绑定控件和设置默认值)。
public void setAnchorView(View view)
设置MediaController绑定到一个视图上。例如可以是一个VideoView对象,或者是你的activity的主视图。
参数
view 可见时绑定的视图
public void setMediaPlayer(MediaPlayerControl player)
设置媒体播放器。并更新播放/暂停按钮状态。
public void setInstantSeeking(boolean seekWhenDragging)
设置用户拖拽SeekBar时画面是否跟着变化。(VPlayer默认完成操作后再更新画面)
public void show()
显示MediaController。默认显示3秒后自动隐藏。
public void show(int timeout)
显示MediaController。在timeout毫秒后自动隐藏。
参数
timeout 超时时间,单位毫秒。为0时控制条的hide()将被调用。
public void setFileName(String name)
设置视频文件名称。
public void setInfoView(OutlineTextView v)
设置保存MediaController的操作信息。例如进度改变时更新v。
public void setAnimationStyle(int animationStyle)
更改MediaController的动画风格。
如果MediaController正在显示,调用此方法将在下一次显示时生效。
参数
animationStyle 在MediaController显示或隐藏时使用的动画风格。设置-1为默认风格,0没有动画,或设置一个明确的动画资源。
public boolean isShowing()
获取MediaController是否已经显示。
public void hide()
隐藏MediaController。
public void setOnShownListener(OnShownListener l)
注册一个回调函数,在MediaController显示后被调用。
public void setOnHiddenListener(OnHiddenListener l)
注册一个回调函数,在MediaController隐藏后被调用。
public boolean onTouchEvent(MotionEvent event)
调用show()并返回true。
public boolean onTrackballEvent(MotionEvent ev)
调用show()并返回false。
public void setEnabled(boolean enabled)
设置MediaController的可用状态。包括进度条和播放/暂停按钮。
受保护方法
protected View makeControllerView()
创建控制播放的布局视图。子类可重写此方法创建自定义视图。