zoukankan      html  css  js  c++  java
  • 【Android-视频播放】实用vitamio自定义控制条位置

    在开发中,用到了视频播放的功能,看到网上现成的开源的Vitamio已经很成熟了。就本着拿来主义直接实用了。

    但是播放中实用的进度条的位置有时候跟自己需求不是那么一致。

    下面是教程

    1.首先修改Vitamio中MediaController类,在此类中新加一个构造函数,代码如下:

    public MediaController(Context context,boolean fromXml,View container) {
    		super(context);
    		initController(context);
    		mFromXml = fromXml;
    		mRoot = makeControllerView();
             //这个地方的FrameLayout.LayoutpParams是因为布局文件中要把MediaController的视图作为childView加到一个FrameLayout中去 FrameLayout.LayoutParams p = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);//想怎样布局MediaController就尽情的发挥这个LayoutParams吧 p.gravity = Gravity.BOTTOM; mRoot.setLayoutParams(p); ((FrameLayout)container).addView(mRoot); }

      此方法中用到的所有字段都是本来就有的,没有新加任何代码

    2.定义播放视频的XML布局文件,代码如下:

    <FrameLayout
            android:id="@+id/ll"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:visibility="gone" >
    
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@color/black"
                android:orientation="vertical" >
    
                <io.vov.vitamio.widget.CenterLayout
                    android:id="@+id/cl"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/black" >
    
                    <io.vov.vitamio.widget.VideoView
                        android:id="@+id/vv"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:layout_centerVertical="true" />
                </io.vov.vitamio.widget.CenterLayout>
            </LinearLayout>
        </FrameLayout>
    

      3.Activity中使用

    /**
    *第一个参数:当前上下文
    *第二个参数:一定要为TRUE,就是为了在MediaController中执行某些代码
    *第三个参数:把控制器添加到哪个View中去
    */

    MediaController mc = new MediaController(this,true,llVideo); vv.setMediaController(mc); mc.setVisibility(View.GONE);//此操作是为了解决打开视频的时候控制条不走动,需要点击下视频才走动的问题。这样默认情况下用户看不到进度条,当点击视频的时候就可以看到正在走动的进度条了。

    希望可以帮到一些人  

    【玩】

  • 相关阅读:
    transition
    Java自增陷阱
    不同编码格式中,字节和字符的关系
    表单重复提交
    source folder和package的区别
    @test 测试案例不能添加参数
    http协议content-type
    jdbc的缺点和mybatis的优点
    ==和equals的区别
    spring IOC和AOP
  • 原文地址:https://www.cnblogs.com/MrZz/p/4031991.html
Copyright © 2011-2022 走看看