做播放器通常会用到MediaController这个控制器,但系统MediaController的UI通常又要修改,于是我想到3个思路:1.自己写一个,卧槽return false不解释。2.继承MediaController,尝试过发现私有Field和Method不好弄false。3.copy代码,是他是他就是他~
1.创建MyMediaController:
好了,就是从MediaConrtoller里copy代码
public class MyMediaController extends FrameLayout{
//内容...内容...
}
2.处理报错:
这时候会发现三个报错:
1.mAccessibilityManager= AccessibilityManager.getInstance(context);
getInstance方法虽然是public的,但是@hide不能使用,所以报错。
AccessibilityManager类是无障碍服务的,暂时不需要,砍掉吧。。。如果要用,可以用反射机制调用。
2.mWindow =newPhoneWindow(mContext);
找不到这个类,ok,利用反射创建:
(注意,MediaController导包com.android.internal.policy.PhoneWindow位置貌似有点问题,应该是com.android.internal.policy.impl.PhoneWindow)
代码:
另外,网上找到另外个实现方法mWindow = PolicyManager.makeNewWindow(mContext);也能用反射得出,包是com.android.internal.policy.PolicyManager。
3.mPlayDescription和mPauseDescription
这两货貌似是朗读描述的,删了。。。