生活随笔
收集整理的這篇文章主要介紹了
videoview 播放视频
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
-videoVIew 繼承SurfaceView
使用android的VideoView來播放一個視頻,步驟是:
1,在xml中創(chuàng)建一個videoView,
2,在java中導入,然后創(chuàng)建一個MediaController控制條來控制。
3,利用videoView的setVideoPath來把打開的視頻文件設置進去,如videoView.setVideoPath(videoFile.getAbsolutePath());
4,把videoView和MediaController關聯(lián)起來,如
videoView.setMediaController(mediaController); mediaController.setMediaPlayer(videoView);
5,設置videoView.requestFocus(); videoView.start(); 既可以播放視頻。
xml文件
[cpp] view plaincopy
<?xml?version="1.0"?encoding="utf-8"?>??<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"??????android:layout_width="fill_parent"??????android:layout_height="fill_parent"??????android:orientation="vertical"?>????????<VideoView??????????android:id="@+id/video"??????????android:layout_width="fill_parent"??????????android:layout_height="fill_parent"?/>??????<Button???????????android:id="@+id/btnShow"??????????android:text="show"???????????android:layout_width="wrap_content"??????????android:layout_height="wrap_content"??????/>????????<Button???????????android:id="@+id/btnHide"??????????android:text="hide"???????????android:layout_width="wrap_content"??????????android:layout_height="wrap_content"??????/>???????????????</LinearLayout>?? ?
java ?文件:
[cpp] view plaincopy
package?com.example.tstmediaplaycontrol;??import?java.io.File;????import?android.app.Activity;??import?android.graphics.PixelFormat;??import?android.os.Bundle;??import?android.view.View;??import?android.widget.Button;??import?android.widget.MediaController;??import?android.widget.Toast;??import?android.widget.VideoView;????public?class?MainActivity?extends?Activity?{????????private?VideoView?videoView;??????private?Button?btnHide,?btnShow;??????MediaController?mediaController;????????public?void?onCreate(Bundle?savedInstanceState)?{??????????super.onCreate(savedInstanceState);??????????getWindow().setFormat(PixelFormat.TRANSLUCENT);??????????setContentView(R.layout.activity_main);????????????videoView?=?(VideoView)?this.findViewById(R.id.video);??????????btnShow?=?(Button)?this.findViewById(R.id.btnShow);??????????btnHide?=?(Button)?this.findViewById(R.id.btnHide);??????????????????????????????mediaController?=?new?MediaController(this);????????????????????File?videoFile?=?new?File("/mnt/sdcard/vid320X240.3gp");????????????????????if?(videoFile.exists())?{??????????????System.out.println("文件存在");????????????????videoView.setVideoPath(videoFile.getAbsolutePath());??????????????System.out.println(videoFile.getAbsolutePath());??????????????????????????videoView.setMediaController(mediaController);??????????????????????????mediaController.setMediaPlayer(videoView);????????????????????????????videoView.requestFocus();??????????????????????????videoView.start();??????????}?else?{??????????????Toast.makeText(this,?"文件不存在",?Toast.LENGTH_LONG).show();??????????}????????????btnShow.setOnClickListener(new?View.OnClickListener()?{????????????????@Override??????????????public?void?onClick(View?v)?{??????????????????if?(mediaController?!=?null)?{??????????????????????????????????????????mediaController.show(0);??????????????????}????????????????}??????????});????????????btnHide.setOnClickListener(new?View.OnClickListener()?{????????????????@Override??????????????public?void?onClick(View?v)?{??????????????????if?(mediaController?!=?null)?{????????????????????????????????????????????mediaController.hide();??????????????????}????????????????}??????????});??????}??}??
附上VvideoView 和 MediaController的方法。
VideoView
常用方法:
| 方法名稱 | 描述 |
| public void setVideoPath (String path) | 加載path路徑的文件 |
| public void setVideoURI (Uri uri) | 加載uri所對應的視頻 |
| public void start () | 開始 |
| public void seekTo (int msec) | 定位 |
| public void pause () | 暫停 |
| public void stop() | 停止 |
| public void setMediaController (MediaController controller) | 設置MediaController對象 |
?
關于MediaController類
這個類也是android.widget包下的,它是一個包含控件MediaPlayer多媒體播放的組件,它含有“播放”、暫停、”、“快倒”、“快進”和進步條的一個組件
構造方法
| 方法名稱 | 描述 |
| public MediaController (Context context, AttributeSet attrs) | 通過Context對象和AttributeSet對象來創(chuàng)建MediaController對象 |
| public MediaController (Context context, boolean useFastForward) | 通過Context對象和指定是否允許用戶控制進度。也就是是否有“快進”、“快退”按鈕。如果設置為false就不會顯示顯示(如下圖片一) |
| public MediaController (Context context) | 通過Context來創(chuàng)建MediaController對象 |
?
常用方法
?
| 方法名稱 | 描述 |
| public void hide() | 設置隱藏MediaController |
| public void show() | 設置顯示MediaController |
| public void show(int timeout) | 設置MediaController顯示的時間以毫秒計算。如果設置為0則一直到調(diào)用hide()方法才隱藏 |
| public void setMediaPlayer (MediaController.MediaPlayerControl player) | 設置MediaPlayer使之與要綁定的控件綁定在一起其參數(shù)是一個MediaController.MediaPlayerControl 靜態(tài)接口的對象,(而VideoView是MediaController.MediaPlayerControl靜態(tài)接口的子實現(xiàn)類,這就使得我們可以更好的控制我們的視頻播放進度) |
總結
以上是生活随笔為你收集整理的videoview 播放视频的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。