api.video is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your app.
This module is made for broadcasting RTMP live stream from smartphone camera.
Run the following command at the root of your project:
flutter pub add apivideo_live_stream
In your dart file, import the package:
import 'package:apivideo_live_stream/apivideo_live_stream.dart';
To be able to broadcast, you must:
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
</manifest>
The library will require android.permission.CAMERA and android.permission.RECORD_AUDIO at runtime. You don't need to request them.
<key>NSCameraUsageDescription</key>
<string>Your own description of the purpose</string>
<key>NSMicrophoneUsageDescription</key>
<string>Your own description of the purpose</string>
final ApiVideoLiveStreamController _controller = ApiVideoLiveStreamController(
initialAudioConfig: AudioConfig(), initialVideoConfig: VideoConfig.withDefaultBitrate());
await _controller.initialize();
@override
Widget build(BuildContext context) {
return SizedBox(
width: 300.0,
height: 300.0,
child: ApiVideoCameraPreview(controller: _controller));
}
ApiVideoCameraPreview
parameters:
controller
: the live stream controllerfit
: the fit of the preview (default is BoxFit.contain,
see BoxFit for more information)child
: a child widget to overlay on top of the preview (optional)_controller.startStreaming("YOUR_STREAM_KEY");
_controller.stop();
On the application side, you must manage application lifecycle:
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.inactive) {
_controller.stop();
} else if (state == AppLifecycleState.resumed) {
_controller.startPreview();
}
}
You can try our example app, feel free to test it.
Be sure to follow the Flutter installation steps before anything.
1) Open Android Studio 2) File > New > Project from Version Control
In URL field, type:
git@github.com:apivideo/api.video-flutter-live-stream.git
Wait for the indexation to finish.
Connect an Android device to your computer and click on the Run main.dart
button.
1) Connect an iOS device to your computer and click on the Run main.dart
button.
2) The build will fail because you haven't set your development profile, sign your application:
Open Xcode, click on "Open a project or file" and open
the YOUR_PROJECT_NAME/example/ios/Runner.xcworkspace
file.
Click on Example, go in Signin & Capabilities
tab, add your team and create a unique bundle
identifier.
api.video Flutter live stream library is using external native libraries:
Plugin | README |
---|---|
StreamPack | StreamPack |
HaishinKit | HaishinKit |
If you have any questions, ask us in the community or use issues.