Flutter视频会议插件flutter_zoom_meeting的使用

Flutter视频会议插件flutter_zoom_meeting的使用

License

这个插件依赖于 Flutter_Zoom 包。它是为了应对其功能问题而开发的。

开发者账户在LinkedIn 链接

这是一个支持所有功能和空安全的Flutter插件,用于Zoom SDK。

注意:此插件仍在积极开发中,部分Zoom功能可能尚未可用。

注意:此插件使用ZAK令牌,因此我们需要实现生成ZAK令牌的API。所有需要的API已在示例中实现。

特性

  • [x] 更新了最新的Zoom SDK。
  • [x] 支持空安全。
  • [x] 可以流式传输会议状态。
  • [x] 启动和加入会议(使用Meeting ID)。
  • [x] 支持iOS。

Zoom SDK版本

注意:更新到具有新功能的新SDK。

安装

首先,在你的pubspec.yaml文件中添加flutter_zoom_meeting作为依赖项:

dependencies:
  flutter_zoom_meeting: ^x.x.x

运行pub get后,你必须运行以下脚本以首次获取Zoom SDK:

从Google Drive下载sdk文件,然后找到你的PC上的flutter_zoom_meeting路径,并将文件添加到以下路径:

Android 文件

flutter_zoom_meeting/android/libs/

iOS 文件

flutter_zoom_meeting/ios/

Google Drive 链接:链接

iOS

ios/Runner/Info.plist中添加两行:

  • 一个带有键Privacy - Camera Usage Description和描述。
  • 一个带有键Privacy - Microphone Usage Description和描述。

或者以文本格式添加键:

<key>NSCameraUsageDescription</key>
<string>需要使用相机进行通话</string>
<key>NSMicrophoneUsageDescription</key>
<string>需要使用麦克风进行通话</string>

ios/Podfile中禁用BITCODE:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

Android

android/app/build.gradle文件中将最小Android SDK版本改为至少24:

minSdkVersion 24

对于发布构建禁用shrinkResources

buildTypes {
  release {
    // TODO: 添加您的签名配置以供发布构建使用。
    // 目前使用调试密钥,以便`flutter run --release`可以正常工作。
    signingConfig signingConfigs.debug
    shrinkResources false
  }
}

集成指南

  1. Zoom Market Place上创建帐户。
  2. 创建服务器到服务器的OAuth并复制凭据到example/lib/zoom/config.dart
  3. 创建通用应用并复制凭据到example/lib/zoom/config.dart
  4. 某些API,如生成JWT令牌、ZAK令牌和创建会议,可能需要在后端实现。然而,这取决于你选择在哪里实现它们。所有API都在提供的示例中进行了演示。

示例代码

import 'package:flutter/material.dart';
import 'meeting_screen.dart';

void main() => runApp(const ExampleApp());

class ExampleApp extends StatelessWidget {
  const ExampleApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '示例Zoom SDK',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      navigatorObservers: const [],
      debugShowCheckedModeBanner: false,
      initialRoute: '/',
      routes: {
        '/': (context) => const MeetingWidget(),
      },
    );
  }
}

更多关于Flutter视频会议插件flutter_zoom_meeting的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter视频会议插件flutter_zoom_meeting的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用flutter_zoom_meeting插件来集成Zoom视频会议功能的示例代码。这个插件允许你直接在Flutter应用中启动Zoom会议。

首先,确保你已经在pubspec.yaml文件中添加了flutter_zoom_meeting依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_zoom_meeting: ^0.1.8  # 请检查最新版本号

然后运行flutter pub get来获取依赖。

接下来,在你的Flutter应用中,你需要按照以下步骤配置和使用flutter_zoom_meeting插件。

Android配置

  1. android/app/src/main/AndroidManifest.xml中添加权限
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    <!-- 其他必要的权限 -->

    <!-- Zoom SDK需要的Activity配置 -->
    <application
        ...>
        <activity android:name="us.zoom.sdk.MeetingActivity"
            android:configChanges="orientation|screenSize|keyboardHidden|smallestScreenSize|screenLayout|density"
            android:label="@string/app_name"
            android:screenOrientation="unspecified"
            android:theme="@style/ZoomTheme"
            android:windowSoftInputMode="adjustResize">
        </activity>
        <!-- 其他Activity配置 -->
    </application>
</manifest>
  1. android/app/build.gradle中添加Zoom SDK的依赖(如果插件文档有指定)
dependencies {
    implementation 'com.zoomus:zoom-sdk-android:5.8.4440.0130'  // 请检查最新版本号
    // 其他依赖
}

iOS配置

  1. ios/Runner/Info.plist中添加必要的权限配置
<key>NSCameraUsageDescription</key>
<string>需要访问相机参加Zoom会议</string>
<key>NSMicrophoneUsageDescription</key>
<string>需要访问麦克风参加Zoom会议</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问相册参加Zoom会议</string>
<!-- 其他必要的权限配置 -->
  1. ios/Podfile中添加Zoom SDK的依赖(如果插件文档有指定)
platform :ios, '11.0'

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))

  # Zoom SDK Pod依赖(如果插件文档有指定)
  # pod 'ZoomSDK', '~> 5.8.4440'  # 请检查最新版本号
end

然后运行pod install

Flutter代码实现

在你的Dart文件中,你可以这样使用flutter_zoom_meeting插件:

import 'package:flutter/material.dart';
import 'package:flutter_zoom_meeting/flutter_zoom_meeting.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ZoomMeetingScreen(),
    );
  }
}

class ZoomMeetingScreen extends StatefulWidget {
  @override
  _ZoomMeetingScreenState createState() => _ZoomMeetingScreenState();
}

class _ZoomMeetingScreenState extends State<ZoomMeetingScreen> {
  final FlutterZoomMeeting _flutterZoomMeeting = FlutterZoomMeeting();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Zoom Meeting Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            bool isMeetingJoined = await _flutterZoomMeeting.joinMeeting(
              meetingNumber: "123456789",  // 替换为你的Zoom会议号
              password: "123456",         // 如果会议有密码
              userName: "FlutterUser",    // 用户名
              userEmail: "user@example.com", // 用户邮箱
            );

            if (isMeetingJoined) {
              print("Joined Zoom meeting successfully.");
            } else {
              print("Failed to join Zoom meeting.");
            }
          },
          child: Text('Join Zoom Meeting'),
        ),
      ),
    );
  }
}

这个示例代码展示了如何配置和使用flutter_zoom_meeting插件来加入一个Zoom会议。请注意,你需要替换示例中的会议号、密码、用户名和邮箱为实际的值。

确保你遵循了Zoom SDK和flutter_zoom_meeting插件的官方文档,因为配置和使用细节可能会随着版本的更新而变化。

回到顶部