一、說明
VideoView是一個Android平台上的視屏播放組件,它封裝了MediaPlayer、SurfaceView等類,提供了比較簡單的視頻播放控制功能。通過VideoView,可以實現在線視頻播放、本地視頻播放等。
VideoView提供了一些常用的視頻播放控制函數,如play()、pause()等,同時也可以設置一些顯示屬性,如大小、位置等。
二、實現步驟
1、將VideoView控制項放到布局文件中
在layout文件夾下的布局文件中添加VideoView控制項,例如:
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2、設置MediaController控制器
MediaController是一個包含常規播放控制項的對象,例如播放、暫停、快進、後退等。要顯示一個MediaController對象,需要將其附加到VideoView中。在代碼中,調用setMediaController()方法將其附加到VideoView中:
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
mediaController.setAnchorView(videoView);
3、載入視頻
載入視頻需要設置視頻的路徑,可以是本地路徑或者網路路徑,通過調用setVideoPath()方法來設置:
String videoPath = "http://www.example.com/sample.mp4";
videoView.setVideoPath(videoPath);
4、播放視頻
調用start()方法開始播放視頻:
videoView.start();
5、監聽視頻狀態
可以為VideoView添加一個OnCompletionListener監聽器,該監聽器可以在視頻播放完成後執行一些操作。例如:
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
//播放完成後的操作
}
});
三、示例代碼
以下是一個基本的VideoView的實現,包括載入本地視頻、網路視頻、添加MediaController、添加監聽器。
public class MainActivity extends AppCompatActivity {
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取VideoView對象
videoView = findViewById(R.id.videoView);
//從資源文件載入本地視頻
String videoPath = "android.resource://" + getPackageName() + "/" + R.raw.sample;
//從網路載入視頻
//String videoPath = "http://www.example.com/sample.mp4";
//設置視頻路徑
videoView.setVideoPath(videoPath);
//添加MediaController
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
mediaController.setAnchorView(videoView);
//開始播放視頻
videoView.start();
//添加視頻播放完成後的監聽器
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
//播放完成後的操作
}
});
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246735.html
微信掃一掃
支付寶掃一掃