cdnbye 0.1.0 cdnbye: ^0.1.0 copied to clipboard
A new flutter plugin project.
English | 简体中文
Live/VOD Flutter P2P Engine for iOS/Android
Features #
- Support iOS and Android platform
- Support live and VOD streams over HLS protocol(m3u8)
- Support encrypted HLS stream
- Support cache to avoid repeating the download of TS file
- Very easy to integrate with an existing flutter project
- Support any flutter player
- Efficient scheduling policies to enhance the performance of P2P streaming
- Highly configurable
- Use IP database to group up peers by ISP and regions
Installation #
Add cdnbye
as a dependency in your pubspec.yaml file.
iOS #
Requirement: This library requires iOS 9.0+. NOTICE: This framework doesn’t support bitcode currently.
In order to allow the loading of distributed content via the local proxy, enable loading data from HTTP in your app by opening your info.plist file as source code and adding the following values below the tag:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Android #
Requirement: Kitkat 4.4(API level >= 19)
Add relevant uses permissions in app/src/main/AndroidManifest.xml
:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Starting with Android 9 (API level 28), cleartext support is disabled by default. There are 2 solutions:
(1) set targetSdkVersion
under 27
(2) Add the attribute below in app/src/main/AndroidManifest.xml
to indicate that the app intends to use cleartext HTTP:
<application
...
android:usesCleartextTraffic="true"
...
/>
Also you will need to set your build settings to Java 8, just add this to your app level build.gradle:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Example #
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
import 'package:cdnbye/cdnbye.dart';
// Init p2p engine
_initEngine();
// Start playing video
_loadVideo();
_initEngine() async {
await Cdnbye.init(
YOUR_TOKEN,
config: P2pConfig.byDefault()
);
}
_loadVideo() async {
var url = YOUR_STREAM_URL;
url = await Cdnbye.parseStreamURL(url); // Parse your stream url
player = VideoPlayerController.network(url);
}
Obtain Token #
See here
Issue & Feature Request #
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
Related Projects #
- hlsjs-p2p-engine - Web Video Delivery Technology with No Plugins.
- ios-p2p-engine - iOS Video P2P Engine for Any Player.
- android-p2p-engine - iOS Video P2P Engine for Any Player.
FAQ #
We have collected some frequently asked questions. Before reporting an issue, please search if the FAQ has the answer to your problem.
Contact Us #
Email:service@cdnbye.com