[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
8會員
123內容數
嗨,我是一名程式設計師,會在這分享開發與學習紀錄。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
小黑與程式的邂逅 的其他內容
GestureDetector( onTap: () { const snackBar = SnackBar(content: Text('Tap')); ScaffoldMessenger.of(context).showSnackBar(snackBar); },
加入套件 在pubspec.yaml添加sqflite與path_provider。 建立數據模型 id:識別欄位,唯一值為整數資料類型 name:存放名字為字串資料類型 class People { final int? id; final String? name;
首先需要在pubspec.yaml文件中添加依賴。 宣告 SharedPreferences record = await SharedPreferences.getInstance(); 寫入 //字串資料 await record.setString(key, value); //
class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Center( child: Table( columnWid
下面代碼為兩列的GridView class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return new GridView.count( cro
可以透過scrollDirection來設定垂直或水平滾動列表資料。 垂直滾動 class HomePage extends StatelessWidget { //列表集合資料 List<Widget> list = <Widget>[ ListTile( ti
GestureDetector( onTap: () { const snackBar = SnackBar(content: Text('Tap')); ScaffoldMessenger.of(context).showSnackBar(snackBar); },
加入套件 在pubspec.yaml添加sqflite與path_provider。 建立數據模型 id:識別欄位,唯一值為整數資料類型 name:存放名字為字串資料類型 class People { final int? id; final String? name;
首先需要在pubspec.yaml文件中添加依賴。 宣告 SharedPreferences record = await SharedPreferences.getInstance(); 寫入 //字串資料 await record.setString(key, value); //
class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Center( child: Table( columnWid
下面代碼為兩列的GridView class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return new GridView.count( cro
可以透過scrollDirection來設定垂直或水平滾動列表資料。 垂直滾動 class HomePage extends StatelessWidget { //列表集合資料 List<Widget> list = <Widget>[ ListTile( ti
你可能也想看
Google News 追蹤
Thumbnail
YTDLnis 免費開源的 Android 應用程式,介面簡潔易於使用,貼上連結即可下載媒體檔案,支援從 1000 多個網站下載視訊和音訊,包括 YouTube、Facebook、Twitter、Instagram、TikTok、Twitch、Vimeo 等。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
Seal APK 免費開源的媒體下載工具,適用於 Android 系統,支援從 YouTube、Facebook、Tiktok、Twitter、Reddit 等 1000+ 網站提取影片和音訊,可以儲存多種格式和品質,包括 480p~2160p 影片和 64Kb
Thumbnail
本課程學習如何處理按鈕點擊事件並透過 Logcat 日誌輸出資訊確認按鈕邏輯是否正確。
Thumbnail
本課程學習如何提取共同屬性,透過 Style 樣式包,套用至每個按鈕。來提升佈局的可讀性和好維護性。
本課程將學習如何在 Activity 中註冊監聽 Fragment 點擊事件。
本課程學習如何將 Activity 傳遞參數給 Fragment。
本課程學習如何使用 RecyclerView 資料列表監聽點擊事件。
Thumbnail
YTDLnis 免費開源的 Android 應用程式,介面簡潔易於使用,貼上連結即可下載媒體檔案,支援從 1000 多個網站下載視訊和音訊,包括 YouTube、Facebook、Twitter、Instagram、TikTok、Twitch、Vimeo 等。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
Seal APK 免費開源的媒體下載工具,適用於 Android 系統,支援從 YouTube、Facebook、Tiktok、Twitter、Reddit 等 1000+ 網站提取影片和音訊,可以儲存多種格式和品質,包括 480p~2160p 影片和 64Kb
Thumbnail
本課程學習如何處理按鈕點擊事件並透過 Logcat 日誌輸出資訊確認按鈕邏輯是否正確。
Thumbnail
本課程學習如何提取共同屬性,透過 Style 樣式包,套用至每個按鈕。來提升佈局的可讀性和好維護性。
本課程將學習如何在 Activity 中註冊監聽 Fragment 點擊事件。
本課程學習如何將 Activity 傳遞參數給 Fragment。
本課程學習如何使用 RecyclerView 資料列表監聽點擊事件。