开源视频播放器IjkPlayer使用记录之(二)--自定义的mediaController实现。

1. 例子中的controller实现

首先先来看一下Ijkplayer example中的mediaController实现。
代码在example中的widget.media的AndroidMediaController中实现。
例子中的功能主要是支持将顶部的toolbar和MediaController绑定在一起,一起show/hide.
这段代码可以自行阅读,不是本文要说的内容。

2. 自定义的mediaController实现

Android中的mediaController支持的api非常少,非常不方便定制。这里就是移植源码的内容做自定义的mediaController。
源码在:android.widget.MediaController.可以清楚的看到MediaController实际上一个FrameLayout。
那么如何移植呢?
<span style="font-size:14px;">private void initFloatingWindow() {
        mWindowManager = (WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE);
        mWindow = new PhoneWindow(mContext);</span>

可以将文件copy到自己的目录下,在sdk24下,没法直接创建PhoneWindow实例。
以下是stackOverflow上搜索到的方法:
<span style="font-size:14px;"> String phone_window_calss = "com.android.internal.policy.impl.PhoneWindow";
        Class phoneWindowClass = null;
        try {
            phoneWindowClass = Class.forName(phone_window_calss);
            Constructor constructor = phoneWindowClass.getDeclaredConstructor(new Class[]{Context.class});
            mWindow = (Window) constructor.newInstance(mContext);
        } catch (Exception e) {
        }</span>
其他的内容可以基本不变。

protected View makeControllerView() {
        LayoutInflater inflate = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mRoot = inflate.inflate(R.layout.custum_media_controller, null);<span style="color:#ff6600;">//修改该文件变更布局。</span>

        initControllerView(mRoot);

        return mRoot;
    }
 
 
private void initControllerView(View v) 
在该函数中定义控件和绑定相关的监听事件。播放相关的回调沿用原有的系统方法比较好,这边主要是做一些自己定制的内容,相对来说还是比较容易实现的。

以上就是简单的自定义mediaController,供参考。








  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值