iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
1
Mobile Development

前端工程師的 Flutter 新手村挑戰系列 第 25

【前端的 Flutter 新手村】Day25-在iPhone上實現Video Player

  • 分享至 

  • twitterImage
  •  

今天要來讓App播放影片,因為官方表示video_player plugin無法在模擬器上呈現,所以今天還會分享如何將App安裝到iPhone上/images/emoticon/emoticon06.gif
https://ithelp.ithome.com.tw/upload/images/20191009/20121111H1P7jK8qC0.png

Step1. 加入video_player package

像這篇Day15-圖片還在loading怎麼辦?轉圈圈動畫效果這樣做一樣在pubspec.yaml加入video_player dependencies
https://ithelp.ithome.com.tw/upload/images/20191009/20121111cUlEwxnbwJ.jpg
然後import到main.dart

import 'package:video_player/video_player.dart';

Step2. 添加系統權限

ios這樣做:

找到這支檔案 ios/Runner/info.plist
https://ithelp.ithome.com.tw/upload/images/20191009/20121111So7qLN9eCB.jpg
直接在<dict>裡添加以下Code:

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

https://ithelp.ithome.com.tw/upload/images/20191009/201211117lPuQlNptF.jpg

Android這樣做:

找到這支檔案 android/app/src/main/AndroidManifest.xml
https://ithelp.ithome.com.tw/upload/images/20191009/20121111Pcryyv0LSj.jpg
<manifest><application>之後添加以下Code:

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

https://ithelp.ithome.com.tw/upload/images/20191009/20121111ex4QFK6oTX.jpg

Step3. 重點:VideoPlayerController

需要用StatefulWidget,可以參考前幾篇範例,這邊就不展示了。然後在State widget裡設定初始化VideoPlayerController

void initState() { //初始化controller
  _controller = VideoPlayerController.network(
    'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4',
  );
  super.initState();
}

記得build widget時要對controller執行初始化

_controller.initialize();

dispose()回收播放器使用的資源

void dispose() {  //銷毀controller
  _controller.dispose(); 
  super.dispose();
}

讓影片維持等比例的樣子

AspectRatio(
  aspectRatio: 16/9,
  child: VideoPlayer(_controller),
),

加上播放按鈕,控制影片點擊時播放、暫停

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

Step4. 部署到你的iPhone上

在終端機裡輸入下面的指令,打開Xcode window,我們要在Xcode裡做一些開發人員設定:

open ios/Runner.xcworkspace

選擇設備和signing
https://ithelp.ithome.com.tw/upload/images/20191009/20121111yfkj6Uovvn.jpg

登入你的Apple ID
https://ithelp.ithome.com.tw/upload/images/20191009/20121111o4IUraiGo8.png

選擇你的帳號,更改bundle identifier,不能用預設的example
https://ithelp.ithome.com.tw/upload/images/20191009/201211115HUXIcjOgi.jpg

接上線後,信任連上的這台電腦,然後跑flutter run,把App安裝到你的手機上(螢幕要記得解鎖)
https://ithelp.ithome.com.tw/upload/images/20191009/20121111rNvIolZTx9.jpg

最後到'設定'允許開發者才打得開App:'設定 > 一般 > 裝置管理 > 你的開發帳號 > 信任'
結果大概就會長這樣,有一個影片跟一個播放按鈕,點了按鈕可以播放影片~
https://ithelp.ithome.com.tw/upload/images/20191009/20121111TxoSfVBVXj.jpg


Code請往這邊走/images/emoticon/emoticon06.gif


上一篇
【前端的 Flutter 新手村】Day24-有了MediaQuery裝置數據不再是秘密
下一篇
【前端的 Flutter 新手村】Day26-轉轉螢幕切換App介面版型-OrientationBuilder
系列文
前端工程師的 Flutter 新手村挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言