android打开视频噔_android: 播放视频
播放視頻文件其實并不比播放音頻文件復雜,主要是使用 VideoView 類來實現的。這個 類將視頻的顯示和控制集于一身,使得我們僅僅借助它就可以完成一個簡易的視頻播放器。 VideoView 的用法和 MediaPlayer 也比較類似,主要有以下常用方法:
方法名
功能描述
setVideoPath()
設置要播放的視頻文件的位置。
start()
開始或繼續播放視頻。
pause()
暫停播放視頻。
resume()
將視頻重頭開始播放。
seekTo()
從指定的位置開始播放視頻。
isPlaying()
判斷當前是否正在播放視頻。
getDuration()
獲取載入的視頻文件的時長。
那么我們還是通過一個實際的例子來學習一下吧,新建 PlayVideoTest 項目,然后修改
activity_main.xml 中的代碼,如下所示:
xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:id="@+id/video_view"
android:layout_width="match_parent" android:layout_height="wrap_content"
/>
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:id="@+id/play" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" android:text="Play" />
android:id="@+id/pause" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" android:text="Pause" />
android:id="@+id/replay" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_weight="1"
android:text="Replay" />
在這個布局文件中,首先是放置了一個 VideoView,稍后的視頻就將在這里顯示。然后在 VideoView 的下面又放置了三個按鈕,分別用于控制視頻的播放、暫停和重新播放。 接下來修改 MainActivity 中的代碼,如下所示:
public class MainActivity extends Activity implements
OnClickListener {
private VideoView videoView;
private Button play; private Button
pause; private Button replay;
@Override
protected void
onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play = (Button) findViewById(R.id.play);
pause = (Button) findViewById(R.id.pause);
replay = (Button) findViewById(R.id.replay);
videoView = (VideoView)
findViewById(R.id.video_view); play.setOnClickListener(this); pause.setOnClickListener(this);
replay.setOnClickListener(this);
initVideoPath();
}
private void initVideoPath() {
File file = new
File(Environment.getExternalStorageDirectory(), "movie.3gp");
videoView.setVideoPath(file.getPath()); //指定視頻文件的路徑
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.play:
if (!videoView.isPlaying()) {
videoView.start(); //開始播放
}
break;
case R.id.pause:
if (videoView.isPlaying()) {
videoView.pause();
//暫時播放
}
break;
case R.id.replay:
if (videoView.isPlaying()) {
videoView.resume(); //重新播放
}
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (videoView != null) {
videoView.suspend();
}
}
}
這部分代碼相信你理解起來會很輕松,因為它和前面播放音頻的代碼非常類似。首先在
onCreate()方法中仍然是去獲取一些控件的實例,然后調用了 initVideoPath()方法來設置視頻 文件的路徑,這里我們需要事先在 SD 卡的根目錄下放置一個名為 movie.3gp 的視頻文件。 下面看一下各個按鈕的點擊事件中的代碼。當點擊 Play 按鈕時會進行判斷,如果當前 并沒有正在播放音頻,則調用 start()方法開始播放。當點擊 Pause 按鈕時會判斷,如果當前 視頻正在播放,則調用 pause()方法暫時播放。當點擊 Replay 按鈕時會判斷,如果當前視頻正在播放,則調用 resume()方法重頭播放視頻。最后在 onDestroy()方法中,我們還需要調用一下 suspend()方法,將 VideoView 所占用的
資源釋放掉。
現在將程序運行到手機上,然后點擊一下 Play 按鈕,就可以看到視頻已經開始播放了, 如圖 8.20
所示。
圖? ?8.20
點擊 Pause 按鈕可以暫停視頻的播放,點擊 Replay 按鈕可以重頭播放視頻。 這樣的話,你就已經將 VideoView 的基本用法掌握得差不多了。不過,為什么它的用法
和 MediaPlayer 這么相似呢?其實 VideoView 只是幫我們做了一個很好的封裝而已,它的背 后仍然是使用 MediaPlayer 來對視頻文件進行控制的。另外需要注意,VideoView 并不是一 個萬能的視頻播放工具類,它在視頻格式的支持以及播放效率方面都存在著較大的不足。所 以,如果想要僅僅使用 VideoView 就編寫出一個功能非常強大的視頻播放器是不太現實的。 但是如果只是用于播放一些游戲的片頭動畫,或者某個應用的視頻宣傳,使用 VideoView 還 是綽綽有余的。
總結
以上是生活随笔為你收集整理的android打开视频噔_android: 播放视频的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xp破解登录密码怎么查看密码是什么 如何
- 下一篇: 西瓜有什么营养价值?