[Flutter]影音播放器

更新 發佈閱讀 4 分鐘

新增video_player

在pubspec.yaml中加入video_player。


設置權限

Android

在AndroidManifest.xml檔案中的<application>裡,加入下列代碼。

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


iOS

在Info.plist中加入以下內容。

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>


建立並初始化VideoPlayerController

class VideoPlayerScreen extends StatefulWidget {
const VideoPlayerScreen({super.key});

@override
State<VideoPlayerScreen> createState() => _VideoPlayerScreenState();
}

class _VideoPlayerScreenState extends State<VideoPlayerScreen> {
late VideoPlayerController _controller;
late Future<void> _initializeVideoPlayerFuture;

@override
void initState() {
super.initState();

_controller = VideoPlayerController.networkUrl(
Uri.parse(
'your_url_string',
),
);

_initializeVideoPlayerFuture = _controller.initialize();
}

@override
void dispose() {
_controller.dispose();

super.dispose();
}

@override
Widget build(BuildContext context) {
return Container();
}
}


建立播放器

FutureBuilder(
future: _initializeVideoPlayerFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
);
} else {
return const Center(
child: CircularProgressIndicator(),
);
}
},
)


播放和暫停

FloatingActionButton(
onPressed: () {
setState(() {
if (_controller.value.isPlaying) {
_controller.pause();
} else {
_controller.play();
}
});
},
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
)




留言
avatar-img
留言分享你的想法!
avatar-img
小黑與程式的邂逅
8會員
123內容數
嗨,我是一名程式設計師,會在這分享開發與學習紀錄。
2023/12/28
解析成List List items=json.decode(jsonStr); print(items[0]["your_key"]); 解析成Map Map<String, dynamic> user = json.decode(json); print('${user['your_k
Thumbnail
2023/12/28
解析成List List items=json.decode(jsonStr); print(items[0]["your_key"]); 解析成Map Map<String, dynamic> user = json.decode(json); print('${user['your_k
Thumbnail
2023/12/26
這邊會使用WebSocketChannel去與http://www.websocket.org做連線。 連線 final channel = IOWebSocketChannel.connect('wss://echo.websocket.events'); 接收 StreamBui
Thumbnail
2023/12/26
這邊會使用WebSocketChannel去與http://www.websocket.org做連線。 連線 final channel = IOWebSocketChannel.connect('wss://echo.websocket.events'); 接收 StreamBui
Thumbnail
2023/12/26
Dio是一個Dart Http請求庫,支援Restful API、FormData、攔截器、請求取消、Cookie管理、檔案上傳/下載、逾時等。 加入 dependencies: dio: ^x.x.x #请使用pub上的最新版本 使用 GET Response response;
Thumbnail
2023/12/26
Dio是一個Dart Http請求庫,支援Restful API、FormData、攔截器、請求取消、Cookie管理、檔案上傳/下載、逾時等。 加入 dependencies: dio: ^x.x.x #请使用pub上的最新版本 使用 GET Response response;
Thumbnail
看更多
你可能也想看
Thumbnail
每次出國旅行,最讓人頭痛的就是要穿什麼? 不同國家的氣候差很大,從零下低溫到艷陽高照,一趟旅程可能要準備兩季的衣服! 這次我整理出我出國最愛帶的 WIWI 輕旅穿搭清單,全部都能在 蝦皮雙11活動 期間用超優惠價格入手,還能同時參加 蝦皮分潤計畫,一邊分享一邊賺旅費 💰 雙11優惠懶人包:
Thumbnail
每次出國旅行,最讓人頭痛的就是要穿什麼? 不同國家的氣候差很大,從零下低溫到艷陽高照,一趟旅程可能要準備兩季的衣服! 這次我整理出我出國最愛帶的 WIWI 輕旅穿搭清單,全部都能在 蝦皮雙11活動 期間用超優惠價格入手,還能同時參加 蝦皮分潤計畫,一邊分享一邊賺旅費 💰 雙11優惠懶人包:
Thumbnail
大家好久不見,趁著連假有時間寫文來分享我這陣子的近況~ 大約 8 月中後的時候,我自己去了一小趟的釜山+福岡獨旅,主要是因為想讓自己沈澱放鬆,也加上自己好久沒有好好休息,所以希望可以有一段自己的時間。 當然,也因為這次是獨自出發,所以身為小小自媒體工作者還是會需要拍照記錄一下生活,所以這次旅程還
Thumbnail
大家好久不見,趁著連假有時間寫文來分享我這陣子的近況~ 大約 8 月中後的時候,我自己去了一小趟的釜山+福岡獨旅,主要是因為想讓自己沈澱放鬆,也加上自己好久沒有好好休息,所以希望可以有一段自己的時間。 當然,也因為這次是獨自出發,所以身為小小自媒體工作者還是會需要拍照記錄一下生活,所以這次旅程還
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
使用pytube library 下載Youtube 影片
Thumbnail
使用pytube library 下載Youtube 影片
Thumbnail
本課程學習如何使用 Intent 簡單跳頁,切換兩個 Activity。
Thumbnail
本課程學習如何使用 Intent 簡單跳頁,切換兩個 Activity。
Thumbnail
本課程學習如何在 Kotlin 程式碼檔案中,設定 ImageView 圖片元件,顯示本地端圖片。
Thumbnail
本課程學習如何在 Kotlin 程式碼檔案中,設定 ImageView 圖片元件,顯示本地端圖片。
Thumbnail
本課程介紹 Android API 版本,主要介紹關於 Android 版本名稱和 API 等級的對照表。
Thumbnail
本課程介紹 Android API 版本,主要介紹關於 Android 版本名稱和 API 等級的對照表。
Thumbnail
本課程學習如何使用 Android Studio 建立的第一個應用程式專案:Hello World。
Thumbnail
本課程學習如何使用 Android Studio 建立的第一個應用程式專案:Hello World。
Thumbnail
新增video_player 在pubspec.yaml中加入video_player。 設置權限 Android 在AndroidManifest.xml檔案中的<application>裡,加入下列代碼。 <uses-permission android:name="androi
Thumbnail
新增video_player 在pubspec.yaml中加入video_player。 設置權限 Android 在AndroidManifest.xml檔案中的<application>裡,加入下列代碼。 <uses-permission android:name="androi
Thumbnail
首先需要在pubspec.yaml文件中添加依賴。 宣告 SharedPreferences record = await SharedPreferences.getInstance(); 寫入 //字串資料 await record.setString(key, value); //
Thumbnail
首先需要在pubspec.yaml文件中添加依賴。 宣告 SharedPreferences record = await SharedPreferences.getInstance(); 寫入 //字串資料 await record.setString(key, value); //
Thumbnail
說明Flutter 插件(Plugin)專案範例的架構與實際載入並執行在各平台的顯示畫面
Thumbnail
說明Flutter 插件(Plugin)專案範例的架構與實際載入並執行在各平台的顯示畫面
Thumbnail
說明如何在Linux系統中安裝 Flutter 與 Visual Studio Code 開發環境
Thumbnail
說明如何在Linux系統中安裝 Flutter 與 Visual Studio Code 開發環境
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News