Android學習筆記使用VideoView播放視訊
阿新 • • 發佈:2020-07-02
Android中常用的視訊格式
- MP4:解析度高、大小適中。
- 3GP:體積小、移動性強。
使用步驟
程式碼實現
MyVideoView.java
package com.lzp.videoview; import android.content.Context; import android.util.AttributeSet; import android.widget.VideoView; public class MyVideoView extends VideoView { public MyVideoView(Context context) { super(context); } public MyVideoView(Context context, AttributeSet attrs){ super(context,attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {//為了讓視訊全屏顯示所有要重寫該方法 int width = getDefaultSize(0, widthMeasureSpec); int height = getDefaultSize(0, heightMeasureSpec); setMeasuredDimension(width, height); } }
MainActivity.java
package com.lzp.videoview; import androidx.appcompat.app.AppCompatActivity; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Environment; import android.view.WindowManager; import android.widget.Toast; import android.widget.VideoView; import java.io.File; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); MyVideoView videoView = findViewById(R.id.video);//獲取VideoView元件 /****載入要播放的視訊****/ File file = new File(Environment.getExternalStorageDirectory() +"/80stest.mp4");//獲取檔案物件 if(file.exists()){ videoView.setVideoPath(file.getAbsolutePath()); //指定要播放的視訊 }else{ Toast.makeText(MainActivity.this, "沒有該視訊資源",Toast.LENGTH_SHORT).show(); } /***控制視訊的播放****/ android.widget.MediaController mc = new android. widget.MediaController (MainActivity.this);//建立MediaController videoView.setMediaController(mc); //讓VideoView和MediaController關聯 videoView.requestFocus();//讓VideoView獲得焦點 videoView.start();//開始播放視訊 videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { Toast.makeText(MainActivity.this,"視訊播放完畢",Toast.LENGTH_SHORT).show(); } }); } }
效果:
專案地址:
https://gitee.com/peterLiz/android_learning.git
技術支援請加QQ:599490685