首页 > 学院 > 开发设计 > 正文

安卓使用VideoView播放raw目录的视频和sd卡的视频

2019-11-06 10:02:11
字体:
来源:转载
供稿:网友

效果

代码

package com.javen.devicemange.CrazyOne.media;import android.Manifest;import android.content.res.AssetManager;import android.media.MediaPlayer;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.support.annotation.Nullable;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.MediaController;import android.widget.VideoView;import com.javen.devicemange.R;import java.io.File;/** * Created by Administrator on 2017/2/27 0027. * 使用VideoView播放raw目录的视频和sd卡的视频 */public class VideoViewTest extends AppCompatActivity implements View.OnClickListener {    PRivate VideoView video;    private Button play;    private MediaController mediaController;    private Button raw;    private Button assets;    private AssetManager assetManager;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.videoviewtest);        initView();        requestPermission();    }    private void requestPermission() {        String[] needPermission = {                Manifest.permission.READ_EXTERNAL_STORAGE,                Manifest.permission.WRITE_EXTERNAL_STORAGE,        };        ActivityCompat.requestPermissions(this, needPermission, 1);    }    private void initView() {        video = (VideoView) findViewById(R.id.video);        play = (Button) findViewById(R.id.play);        play.setOnClickListener(this);        raw = (Button) findViewById(R.id.raw);        raw.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.play:                playVideoMp4();                break;            case R.id.raw:                playVideoRaw();                break;        }    }    /**     * 播放raw的小视频     */    private void playVideoRaw() {        mediaController = new MediaController(this);        //获取raw.mp4的uri地址        String uri = "android.resource://" + getPackageName() + "/" + R.raw.raw;        video.setVideoURI(Uri.parse(uri));        //让video和mediaController建立关联        video.setMediaController(mediaController);        mediaController.setMediaPlayer(video);        //让video获取焦点        video.requestFocus();        //监听播放完成,        video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {            @Override            public void onCompletion(MediaPlayer mp) {                //重新开始播放                video.start();            }        });    }    /**     * 播放sd卡的小视频     */    private void playVideoMp4() {        mediaController = new MediaController(this);        //获取sd卡根目录下的test.mp4文件        File file = new File(Environment.getExternalStorageDirectory().toString() + "/test.mp4");        if (file.exists()) {            video.setVideoPath(file.getAbsolutePath());            //让video和mediaController建立关联            video.setMediaController(mediaController);            mediaController.setMediaPlayer(video);            //让video获取焦点            video.requestFocus();        }    }}

raw目录

sd卡目录

布局xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:orientation="vertical">    <Button        android:id="@+id/raw"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="播放raw目录的小视频"/>    <Button        android:id="@+id/play"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="播放sd卡的小视频"/>    <VideoView android:id="@+id/video"               android:layout_width="match_parent"               android:layout_height="300dp"/></LinearLayout>

AndroidManifest.xml

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

。。。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表