iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0

VideoView簡介

VideoView是Android原生提供的一個封裝類,只用來播放影片,影片來源可以是網路的也可以是本地的。

如何使用

1. 設置權限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2. 在Activity添加VideoView元件

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="250dp"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <VideoView
            android:id="@+id/m_video_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

在xml根布局添加這個屬性可以保持螢幕常亮

android:keepScreenOn="true"

使用

private void initVideoView() {
    // --- [方法一] 本地片源 ---
    // String videoPath = "android.resource://" + getPackageName() + "/" + R.raw.video;
    // --- [方法二] 網路片源 ---
    String videoPath = "http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4";
    view.mVideoView.setVideoPath(videoPath); //設置片源
    view.mVideoView.setMediaController(new MediaController(this)); //設置控鍵
    view.mVideoView.start(); //開始播放
}

注意! API 28以後只允許HTTPS網路請求,如果要使用HTTP要另外進行設置。


設置方式

步驟一
在xml中創建network_security_config.xml文件

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

步驟二
AndroidManifest.xml添加這一行:

<manifest ...>
    <application
        android:networkSecurityConfig="@xml/network_security_config"
        ... >
    </application>
</manifest>

手機翻轉-自動全螢幕

  • AndroidManifest.xml
<activity
    android:name=".MainActivity"
    android:configChanges="orientation|screenSize"
    ... />

判斷當前螢幕狀態

getResources().getConfiguration().orientation

上一篇
Day24 - Jetpack Room
下一篇
Day26 - 子母畫面PIP (Picture in Picture)
系列文
Android 開發 30天 初學之路筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言