Android——VideoView播放视频

播放网络视频的代码如下:

videoView = (VideoView) findViewById(R.id.videoview);  
videoView.setVideoURI(Uri.parse("http://f3.3g.56.com/15/15/JGfMspPbHtzoqpzseFTPGUsKCEqMXFTW_smooth.3gp"));  
MediaController mediaController = new MediaController(this);  
videoView.setMediaController(mediaController);  
videoView.start();  

播放当前工程中的视频的代码:

videoView.setVideoURI(Uri.parse("android.resource://com.telecom.activities/"+R.raw.video)); 

注:com.telecom.activities是类的package name,R.raw.video是视频的文件名,视频放在res下的raw文件夹下了,会自动在R.java中生成。android中文件名有要求,必须是有效的文件名,包括小写字母和数字,其余的都不行,注意!

播放sd卡或者手机内存中的视频的代码:

添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

查询权限:

if(ContextCompat.checkSelfPermission(VideoTestActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(VideoTestActivity.this,new String[]{
                    Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
        }else{
            initVideoPath();
        }

获取权限:

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case 1:
                if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    initVideoPath();
                }else{
                    Toast.makeText(this,"拒绝权限将无法使用程序",Toast.LENGTH_SHORT).show();
                    finish();
                }
                break;
                default:
        }

初始化视频路径,需要在手机SD卡根目录添加一个 video.mp4 视频
法1:

String videoUrl1 = Environment.getExternalStorageDirectory().getPath()+"/video.mp4" ;
Uri uri = Uri.parse( videoUrl1 );
videoView.setVideoURI(uri);

法2:

File file = new File(Environment.getExternalStorageDirectory(),"video.mp4");
videoView.setVideoPath(file.getPath());

法3:

videoView.setVideoURI(Uri.parse("file:///sdcard/video.mp4"));

猜你喜欢

转载自blog.csdn.net/qq_35008279/article/details/80787667