flutter_wowza 0.1.3 flutter_wowza: ^0.1.3 copied to clipboard
Flutter WOWZA plugin for iOS/Android. The project is based on Wowza GoCoder SDK
flutter_wowza #
The project is based on Wowza GoCoder SDK
Learn more about using GoCoder here Android | IOS
Usage #
Add flutter-wowza
as a dependency in your pubspec.yaml file.
iOS #
Add the following entry to your Info.plist file, located in <project root>/ios/Runner/Info.plist
:
<key>NSCameraUsageDescription</key>
<string>The camera will be used to capture video for live streaming</string>
<key>NSMicrophoneUsageDescription</key>
<string>The microphone will be used to capture live audio for streaming</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>io.flutter.embedded_views_preview</key>
<true/>
Android #
Ensure the following permission is present in your Android Manifest file, located in <project root>/android/app/src/main/AndroidManifest.xml
:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.camera.any" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-feature android:name="android.hardware.microphone" android:required="false" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
Example #
WOWZCameraView(
apiLicenseKey: (defaultTargetPlatform == TargetPlatform.android)
? "GOSK-xxxx-xxxx-xxxx-xxxx-xxxx"
: "GOSK-xxxx-xxxx-xxxx-xxxx-xxxx",
controller: controller,
hostAddress: "xxx.xxx.xxx.xxx",
portNumber: 1935,
applicationName: "xxxxxx",
streamName: "xxxxx",
username: "xxxx",
password: "xxxx",
scaleMode: ScaleMode.FILL_VIEW,
statusCallback: (status) {
print(
"status: ${status.mState} | ${status.isStarting()} | ${status.isReady()}");
},
broadcastStatusCallback: (broadcastStatus) {
print(
"status: ${broadcastStatus.state.toString()} | ${broadcastStatus.message}");
},
)
Control live streams
WOWZCameraController controller = WOWZCameraController();
Functionality supported #
Feature | Android | iOS |
---|---|---|
WOWZMediaConfig.FRAME_SIZE_176x144 | ✔️ | |
WOWZMediaConfig.FRAME_SIZE_320x240 | ✔️ | |
WOWZMediaConfig.FRAME_SIZE_352x288 | ✔️ | ✔️ |
WOWZMediaConfig.FRAME_SIZE_640x480 | ✔️ | ✔️ |
WOWZMediaConfig.FRAME_SIZE_960x540 | ✔️ | |
WOWZMediaConfig.FRAME_SIZE_1280x720 | ✔️ | ✔️ |
WOWZMediaConfig.FRAME_SIZE_1440x1080 | ✔️ | |
WOWZMediaConfig.FRAME_SIZE_1920x1080 | ✔️ | ✔️ |
WOWZMediaConfig.FRAME_SIZE_3840x2160 | ✔️ | ✔️ |
Feature | Android | iOS |
---|---|---|
ScaleMode.FILL_VIEW | ✔️ | ✔️ |
ScaleMode.RESIZE_TO_ASPECT | ✔️ | ✔️ |
IOS | Android | Flutter |
---|---|---|
hostAddress | hostAddress | hostAddress |
portNumber | portNumber | portNumber |
applicationName | applicationName | applicationName |
streamName | streamName | streamName |
username | username | username |
password | password | password |
videoFrameRate | videoFrameRate | fps |
videoBitrate | videoBitrate | bps |
audioSampleRate | audioSampleRate | khz |
cameraView.start() | WOWZCameraView.startPreview() | startPreview |
cameraView.stop() | WOWZCameraView.stopPreview() | stopPreview |
cameraView.start() | WOWZCameraView.continuePreview() | continuePreview |
cameraView.stop() | WOWZCameraView.pausePreview() | pausePreview |
cameraView.switchCamera() | WOWZCameraView.switchCamera() | switchCamera |
cameraView.camera.isTorchOn | WOWZCameraView.camera.isTorchOn | flashLight |
GoCoder.isAudioMuted | WOWZAudioDevice.isMuted | muted |
cameraView.isSwitchCameraAvailable | WOWZCameraView.isSwitchCameraAvailable | isSwitchCameraAvailable |
GoCoder.isStreaming | WowzaGoCoder.isInitialized | isInitialized |
GoCoder.startStreaming | WOWZBroadcast.startBroadcast | startBroadcast |
GoCoder.endStreaming | WOWZBroadcast.endBroadcast | endBroadcast |