安卓使用VideoView播放raw目录的视频和sd卡的视频
2017-02-27 13:06
477 查看
效果
代码
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"/>
。。。
相关文章推荐
- 安卓中使用VideoView来播放视频
- Android使用videoview播放res/raw下的视频并在结束后隐藏
- 安卓使用videoview进行音频、视频播放,及播放控制
- Android使用videoview播放res/raw下的视频
- 在安卓中使用VideoView来播放视频
- Android 安卓使用VideoView播放本地视频
- WindowManager实现悬浮框并且使用VideoView播放视频
- Android--使用VideoView播放视频以及VideoView的api
- Android使用VideoView播放网络视频
- 在Android中使用VideoView播放视频
- 在Android中使用VideoView播放视频
- Android--使用VideoView播放视频
- 视频播放控件VideoView的基本使用
- 初学Android,多媒体之使用VideoView播放视频(七十七)
- Android使用VideoView播放网络视频
- Android使用VideoView播放网络视频
- Android使用VideoView播放网络视频
- 简单使用videoview播放视频
- Android使用VideoView播放网络视频
- Android使用VideoView播放网络视频