欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    早上起來有時間,發(fā)一篇博文,最近在開發(fā)電視機(jī)頂盒的視頻播放,涉及到當(dāng)中比較常見的視頻播放器控件的使用android視頻播放器實(shí)現(xiàn),以此為例,記錄下來。

    源碼地址下載。

    首先,上效果圖:

    通過播放視頻的步驟:

    實(shí)現(xiàn)方式:使用XML布局和java代碼控件綁定的形式。

    1、在界面布局文件中定義組件。

    2、調(diào)用的如下兩個方法來加載指定的視頻

    setVidePath(String path):加載path文件代表的視頻
    setVideoURI(Uri uri):加載uri所對應(yīng)的視頻

    3、調(diào)用的start()、stop()、psuse()方法來控制視頻的播放

    4、通過()方法與類結(jié)合使用,來控制播放、暫停和快進(jìn)快退。

    setMediaController(MediaController mediaController);
    

    下面上代碼,主界面.java :

    public class MainActivity extends Activity {
        VideoView mVideoView1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // 播放網(wǎng)絡(luò)視頻
            // Uri uri = Uri
            // .parse("http://vfx.mtime.cn/Video/2016/03/16/mp4/160316113358220143.mp4 ");
            // 播放本地視頻
            Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()
                    + "/Launcher/09.mp4");
            mVideoView1 = (VideoView) this.findViewById(R.id.mVedioView1);
            MediaController mediaController = new MediaController(this);
            mVideoView1.setMediaController(mediaController);
            mVideoView1.setVideoURI(uri);
            // mVideoView1.requestFocus();
            mVideoView1.start();
        }
    }

    對應(yīng)的界面布局 .xml :

    "http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.example.test_mediaplayer.MainActivity" >
        <com.example.test_mediaplayer.WrapVideoView
            android:id="@+id/mVedioView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        com.example.test_mediaplayer.WrapVideoView>
    
    

    會發(fā)現(xiàn),布局中使用個并不是,而是自定義的,那么為什么要自定義呢?

    原因很簡單, 的控件在 (int , int ) 方法中對控件的寬高進(jìn)行了操作,使得視頻的寬高根據(jù)實(shí)際寬高進(jìn)行了縮放,如果直接使用android視頻播放器實(shí)現(xiàn),則會導(dǎo)致如下效果:

    可以看到視頻的高正常,但是寬并沒有占滿全屏,所以,我們可以自己定義一個類來繼承,重寫()方法。

    .java:

    public class WrapVideoView extends VideoView {
        public WrapVideoView(Context context) {
            super(context);
            requestFocus();
        }
        public WrapVideoView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
        public WrapVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int width = getDefaultSize(getWidth(), widthMeasureSpec);
            int height = getDefaultSize(getHeight(), heightMeasureSpec);
            setMeasuredDimension(width, height);
        }
    }

    這樣一來,呈現(xiàn)的界面就和第一張效果圖一樣了,是不是感覺有點(diǎn)成就感,哈哈。

    如果有時間有興趣的話,讀者可以自己去的源碼看一下 () 這個方法。

    好了,今天的博文就到這里,也算是大功一件。

    源碼地址下載。

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有