Skip to content

プラグインの導入

プロジェクトの pubspec.yaml に依存関係を追加します:

  flutter pub add flutter_p2p_engine

iOS

  • ios/Podfileplatform :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/Podfileplatform :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 の取得方法を確認してください。

粤ICP备18075581号