iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0

這次要來教如何使用透過VideoView來播放手機內部的影片。

XML

先簡單設計出一個頁面,寫出一個Button作為觸發選取影片的元件,並寫出一個VideoView來播放影片就好。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="300dp" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="選擇影片"/>
</RelativeLayout>

JAVA程式

設計好XML之後,就能開始製作選取並播放影片的功能了。
先做好按鈕的監聽器,接著在觸發功能輸入以下程式碼:
Intent picker = new Intent(Intent.ACTION_GET_CONTENT);透過參數Intent.ACTION_GET_CONTENT來開啟檔案選擇器
picker.setType("video/*");用.setType()將所需的檔案格式輸入到參數中藉此來過濾檔案

startActivityForResult(picker, READ_REQUEST_CODE);執行檔案選取並將結果傳遞到onActivityResult,READ_REQUEST_CODE要求代碼,是使用者設定的整數引數,接收Intent結果時,會回傳同一要求代碼,以便識別是哪一個Intent回傳的結果。

public void onActivityResult() 接收選取後的結果並以.getData()來取得內容,之後再根據使用者的需求來決定要做甚麼處理。

public class MainActivity extends AppCompatActivity {
    VideoView videoView;
    Button button;
    MediaController vidControl;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main );

        button = findViewById(R.id.button);
        videoView = findViewById(R.id.videoView);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent( Intent.ACTION_PICK );
                intent.setType( "video/*" );
                Intent intent2 = Intent.createChooser( intent, "選擇檔案" );
                startActivityForResult(intent2,0);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Uri uri = data.getData();
        vidControl = new MediaController(this);
        vidControl.setAnchorView(videoView);
        videoView.setMediaController(vidControl);
        videoView.setVideoURI(uri);
        videoView.start();
    }
}

成果

圖片


上一篇
[Day23] 檔案創建
下一篇
[Day25] DatePicker(日期選擇器)
系列文
Android 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言