replay_kit_launcher 0.3.0
replay_kit_launcher: ^0.3.0 copied to clipboard

A flutter plugin of the launcher used to open RPSystemBroadcastPickerView for iOS

ReplayKit Launcher #

pub package

A flutter plugin of the launcher used to open RPSystemBroadcastPickerView for iOS

Note: Only support iOS

iOS #

Shared preferences with App Group: Shared preference supporting iOS App Group capability (using -[NSUserDefaults initWithSuiteName:])

Android #

If you need to implement screen capture on Android, I have also developed a helpful plugin:

MediaProjection Creator: A flutter plugin of the creator used to create MediaProjection instance (with requesting permission) for Android

Usage #

To use this plugin, add replay_kit_launcher as a dependency in your pubspec.yaml file.

Example #

  1. Start

     /// Please fill in the name of the Broadcast Extension in your project, which is the file name of the `.appex` product
     /// [extensionName] is your `BroadCast Upload Extension` target's `Product Name`,
     /// or to be precise, the file name of the `.appex` product of the extension
     ReplayKitLauncher.launchReplayKitBroadcast('BroadcastDemoExtension');
    
  2. Stop

    Before using this method, you need to write some native code in the iOS native project to cooperate with it. For details, please refer to /example/ios/BroadcastDemoExtension/ZGBroadcastManager.m

     // Please fill in the CFNotification name in your iOS native project
     ReplayKitLauncher.finishReplayKitBroadcast('ZGFinishBroadcastUploadExtensionProcessNotification');
    

Please see the example app of this plugin for a full example.

Another practical demo #

https://github.com/zegoim/zego-express-example-screen-capture-flutter

This demo implements screen live broadcast on iOS/Android by using the ZEGO Express Audio and Video Flutter SDK

Flutter screen capture solution | Flutter 移动端屏幕采集方案分享

FAQ #

  1. What is the .appex product file?

    Open your flutter project's iOS native workspace (Runner.xcworkspace), select Xcode -> File -> New -> Target and create a new Broadcast Upload Extension target.

    Click Next and then fill in the Product Name field. This field is the file name of the .appex product file.

  2. How to stop the ReplayKit broadcast process after launching?

    There are two ways to stop the ReplayKit broadcast process, one is to actively click the red button at the top of the iPhone screen, and the other is to call the -[RPBroadcastSampleHandler finishBroadcastWithError:] method provided by ReplayKit broadcast sub-process's SampleHandler instance object.

    But the question is how to invoke the method of the Replaykit sub-process's object on flutter side?

    One solution is to use cross-process notifications CFNotificationCenterGetDarwinNotifyCenter, post notifications on the flutter side with Method Channel, receive notifications on the iOS Replaykit sub-process side, and then actively invoke the finishBroadcastWithError: method after receiving the notification.

    The flutter plugin's ReplayKitLauncher.finishReplayKitBroadcast() method does this job: it uses Method Channel on the flutter side to notify the iOS native main process side to post cross-process notifications, the param notificationName is the CFNotification name.

    So you need to refer to the /example/ios/BroadcastDemoExtension/ZGBroadcastManager.m file to implement code on your project's iOS ReplayKit broadcast extension sub-process side to receive notifications and invoke SampleHandler's finishBroadcastWithError: method to stop the ReplayKit broadcast sub-process extension.

Contributing #

Everyone is welcome to contribute code via pull requests, to help people asking for help, to add to our documentation, or to help out in any other way.

2
likes
110
pub points
66%
popularity

A flutter plugin of the launcher used to open RPSystemBroadcastPickerView for iOS

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

paaatrickfu@gmail.com

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on replay_kit_launcher