zoukankan      html  css  js  c++  java
  • andriod VideoView

    package com.example.yanlei.myyk;
    
    import android.media.MediaPlayer;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.MediaController;
    import android.widget.VideoView;
    
    import java.io.File;
    
    
    public class MainActivity extends AppCompatActivity {
    
        private VideoView videoView;
        MediaController mediaco;
        private Uri mUri;
    
        public static final String TAG = "VideoPlayer";
    
        private int mPositionWhenPaused = -1;
    
        private MediaController mMediaController;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            videoView = (VideoView) findViewById(R.id.videoview);
            //文件路径
    
            mUri = Uri.parse(Environment.getExternalStorageDirectory() + "/videoviewdemo.mp4");
    
            //Create media controller
            mediaco = new MediaController(this);
            //设置MediaController
            videoView.setMediaController(mediaco);
        }
    
        //监听MediaPlayer上报的错误信息
    
    
        public boolean onError(MediaPlayer mp, int what, int extra) {
            // TODO Auto-generated method stub
            return false;
        }
    
    
    //Video播完的时候得到通知
    
    
        public void onCompletion(MediaPlayer mp) {
            this.finish();
        }
    
    
        //开始
        public void onStart() {
            // Play Video
            videoView.setVideoURI(mUri);
            videoView.start();
    
            super.onStart();
        }
    
    
        //暂停
    
        public void onPause() {
            // Stop video when the activity is pause.
            mPositionWhenPaused = videoView.getCurrentPosition();
            videoView.stopPlayback();
            Log.d(TAG, "OnStop: mPositionWhenPaused = " + mPositionWhenPaused);
            Log.d(TAG, "OnStop: getDuration  = " + videoView.getDuration());
    
            super.onPause();
        }
    
    
        public void onResume() {
            // Resume video player
            if (mPositionWhenPaused >= 0) {
                videoView.seekTo(mPositionWhenPaused);
                mPositionWhenPaused = -1;
            }
    
            super.onResume();
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    }

    权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    或者
    package com.example.yanlei.myyk;
    
    import android.os.Bundle;
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.MediaController;
    import android.widget.VideoView;
    
    import java.io.File;
    
    
    public class MainActivity extends AppCompatActivity {
    
        private VideoView video1;
        MediaController  mediaco;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            video1=(VideoView)findViewById(R.id.videoview);
            mediaco=new MediaController(this);
            File file=new File(Environment.getExternalStorageDirectory() + "/videoviewdemo.mp4");
            if(file.exists()){
                //VideoView与MediaController进行关联
                video1.setVideoPath(file.getAbsolutePath());
                video1.setMediaController(mediaco);
                mediaco.setMediaPlayer(video1);
                //让VideiView获取焦点
                video1.requestFocus();
            }
    
        }
    
    
    
    }
  • 相关阅读:
    【JS】415- JS面向对象之 7 大基本原则
    【每周小回顾】14- 一起回顾上周精彩内容
    【全栈修炼】414- CORS和CSRF修炼宝典
    【全栈修炼】CORS和CSRF修炼宝典
    【JS】413- JavaScript中的位运算和权限设计
    【面试题】412- 35 道必须清楚的 React 面试题
    【CSS】410- 关于CSS盒子模型、BFC及其应用
    15.app后端怎么设计用户登录方案
    14.app后端如何设计api
    13.app后端为什么要用到消息队列
  • 原文地址:https://www.cnblogs.com/gisoracle/p/5252627.html
Copyright © 2011-2022 走看看