在安卓中使用VideoView來播放視訊
阿新 • • 發佈:2019-01-09
第一步:在Activity中放入一個VideoView元件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_gravity="center" android:gravity="center"> <VideoView android:id="@+id/VideoView_advView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center"/> </LinearLayout>
第二步:在程式碼中完成播放視訊的功能:
/** * 建立多媒體播放器,並播放固定目錄下的固定名稱的視訊檔案 */ MediaController mediaController = new MediaController(this); mediaController.setVisibility(View.INVISIBLE);//隱藏進度條和食品播放按鈕 File videoFile = new File("/mnt/sdcard/Movies/wineAdv.mp4"); // 先判斷這個檔案是否存在 if (videoFile.exists()) { System.out.println("檔案存在"); VideoView videoView = (VideoView)this.findViewById(R.id.VideoView_advView); videoView.setVideoPath(videoFile.getAbsolutePath()); System.out.println(videoFile.getAbsolutePath()); // 設定VideView與MediaController建立關聯 videoView.setMediaController(mediaController); // 設定MediaController與VideView建立關聯 mediaController.setMediaPlayer(videoView); // 讓VideoView獲取焦點 videoView.requestFocus(); // 開始播放 videoView.start(); //設定迴圈播放 videoView.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.setLooping(true); } }); //當播放完成時,再次啟動播放。即人工迴圈播放 this.videoView.setOnCompletionListener(new OnCompletionListener(){ @Override public void onCompletion(MediaPlayer mp) { videoView.setVideoPath(videoFile.getAbsolutePath()); videoView.start(); } }); } else { Toast.makeText(this, "視訊檔案不存在", Toast.LENGTH_LONG).show(); }