在Android中使用VideoView播放視頻

來源:互聯網
上載者:User

在Android中,我們有三種方式來實現視頻的播放:第一種方式是使用MediaPlayer結合SurfaceView來播放,通過MediaPlayer來控制視頻的播放、暫停、進度等,而通過SurfaceView來顯示視頻內容;第二種方式是使用VideoView來播放,這個類其實也是繼承了SurfaceView類,並且實現了MediaController.MediaPlayerController這個用於控制媒體播放的介面,另外在VideoView上還有一個用於對媒體播放進行控制的面板,包括快進、快退、播放、暫停按鈕以及一個進度條。使用VideoView播放視頻的好處是簡單,因為它已經幫我們實現了SurfaceView以及控制方法,我們只需要直接拿來使用就可以了,但它的缺點是靈活性不夠。而使用MediaPlayer結合SurfaceView來播放視頻的話,好處是可以更靈活的對其進行自訂,但缺點是難度比較大。這次我們先來看如何通過VideoView來實現視頻的播放。:第三種使用其內建的播放器。指定Action為ACTION_VIEW,Data為Uri,Type為其MIME類型。 

 

VidoeView的常用方法如下:



 

另外,媒體控制台(MediaController)上也有一些有用的方法,如下表所示:



 

下面我們來看一個例子。

 

首先,我們要定義一個layout,在這個layout中,需要有一個VideoView組件,檔案如下:

        

        

                android:orientation="vertical" android:layout_width="fill_parent"

                android:layout_height="fill_parent">

        

                android:layout_height="match_parent">

        

 

這裡定義了一個VideoView,它的id為videoVIew1,然後,我們來編寫對應的Activity:

 

package cn.com.farsight.vv;

import android.app.Activity;

        import android.content.pm.ActivityInfo;

        import android.os.Bundle;

        import android.view.Window;

        import android.view.WindowManager;

        import android.widget.MediaController;

        import android.widget.VideoView;

        public class MainActivity extends Activity {


        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                //去迴轉部title

                requestWindowFeature(Window.FEATURE_NO_TITLE);

                 //設定全屏

                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

                //設定螢幕常亮

                getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

                setContentView(R.layout.main);

                VideoView vv = (VideoView)findViewById(R.id.videoView1);

                vv.setVideoPath("/mnt/sdcard/a5.mp4");

                //設定媒體控制條

                vv.setMediaController(new MediaController(this));

                vv.start();

                vv.requestFocus();

                }

        }

 

這樣,就可以播放在/mnt/sdcard/a5.mp4這個視頻檔案了。

 

另外,為了防止使用者誤按返回鍵而退出播放,可以在這個程式中覆蓋onBackPressed方法,在這個方法中來處理使用者點擊返回鍵的動作,例如,只有使用者在短時間內點擊2次返回鍵才真正退出播放。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.