引入外掛程式
在專案的 pubspec.yaml 中加入相依套件:
flutter pub add flutter_p2p_engineiOS
- 在 ios/Podfile 加入 platform :ios, '13.0'
- 用 xcode 開啟 ios/Runner.xcworkspace,將 Minimum Developments Target 改成 13.0
macOS
- 編輯 macos/Runner/Release.entitlements & macos/Runner/DebugProfile.entitlements:
xml
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.app-sandbox</key>
<false/>- 在 macos/Podfile 加入 platform :osx, '10.15'
- 用 xcode 開啟 macos/Runner.xcworkspace,將 Minimum Developments Target 改成 10.15
Android
- 編輯 android/app/src/main/AndroidManifest.xml,新增如下權限宣告:
xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
...
android:usesCleartextTraffic="true"
...
/>TIP
以下設定用於 release 打包階段, 開發階段不需要
- 為了保證正常使用 SDK,打包時請在 android/app/proguard-rules.pro 檔案中加入以下程式碼:
-dontwarn com.p2pengine.**
-keep class com.p2pengine.**{*;}
-keep interface com.p2pengine.**{*;}
-keep class com.cdnbye.libdc.**{*;}
-keep interface com.cdnbye.libdc.**{*;}
-keep class com.snapchat.djinni.**{*;}- 在 android/app/build.gradle 新增以下程式碼來引入 proguard 設定
buildTypes {
release {
...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}範例
dart
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import 'package:flutter_p2p_engine/flutter_p2p_engine.dart';
// Init p2p engine
_initEngine();
// Start playing video
_loadVideo();
_initEngine() async {
await FlutterP2pEngine.init(
YOUR_TOKEN,
config: P2pConfig(
trackerZone: TrackerZone.Europe, // Set HongKong or USA if you changed zone
),
);
}
_loadVideo() async {
var url = YOUR_STREAM_URL;
url = await FlutterP2pEngine.parseStreamURL(url); // Parse your stream url
player = VideoPlayerController.networkUrl(url);
}其中 YOUR_TOKEN 是用於標識使用者的字串,請換成自己的token,點擊這裡查看如何註冊 Appid 並取得 token。
