Pano Flutter SDK 全新发布,跨平台音视频开发更easy
在過去,每個操作系統(tǒng)的應(yīng)用需用特定的編程語言來編寫,每個客戶端都需要單獨(dú)開發(fā),而現(xiàn)在我們可以利用多種工具、框架進(jìn)行跨平臺開發(fā)。Flutter 就是其中最熱門的一個,也是在線教育、社交泛娛樂、在線金融等行業(yè)場景中開發(fā)必不可少的。
Flutter 是 Google推出的移動框架,使用 Flutter 可以快速構(gòu)建跨平臺、高質(zhì)量的客戶端應(yīng)用。Pano 提供的語音通話、視頻通話、互動白板、互動直播、云端錄制能力,覆蓋了 iOS、Android、Windows、macOS、Electron、Web 等多個平臺。如今,Pano SDK 再添新成員,正式支持 Flutter,開發(fā)者通過一套代碼即可輕松集成 iOS、Android 雙平臺實(shí)時互動音視頻、互動白板等能力。
Pano Flutter SDK 是基于 Pano SDK 封裝的 Flutter Plugin,完全開源,并且為了讓開發(fā)者在使用時擁有與使用 Native SDK 相似的開發(fā)體驗(yàn),大部分接口的名稱與 Native SDK 保持了一致。本文將給大家介紹一下如何快速接入 Pano Flutter SDK。
?
準(zhǔn)備工作
- 拍樂云開發(fā)者賬戶(通過拍樂云官網(wǎng)注冊:https://www.pano.video/)
- Flutter 開發(fā)環(huán)境(SDK 版本 >= 1.20.0)
開始接入
獲取一個 App ID 和臨時 Token
首先我們需要使用開發(fā)者賬戶登陸Pano控制臺,創(chuàng)建應(yīng)用,獲取 App ID 和臨時 Token,后面將會用到。(創(chuàng)建應(yīng)用獲取臨時Token請參考文檔:創(chuàng)建第一個應(yīng)用:https://developer.pano.video/getting-started/firstapp/)
在應(yīng)用中集成 Pano Flutter SDK
為了使用此插件, 添加?pano_rtc?到你的 pubspec.yaml 文件中:
dependencies: ... pano_rtc: ">=0.9.0"在項(xiàng)目目錄中運(yùn)行 packages get 命令:
flutter packages get在?main.dart?中添加如下代碼導(dǎo)入?pano_rtc:
import 'package:pano_rtc/pano_rtc.dart';使用上面獲取的 App ID 初始化?RtcEngineKit:
class _MyAppState extends State<MyApp> {...RtcEngineKit _engine;...@overridevoid initState() {super.initState();var config = RtcEngineConfig(appId, 'api.pano.video'); //使用 Pano 控制臺創(chuàng)建應(yīng)用 App ID_engine = await RtcEngineKit.engine(config);} }加入頻道,開啟音視頻通話
設(shè)置 EventHandler 接收應(yīng)用需要的事件回調(diào):
_engine.setEventHandler(RtcEngineEventHandler(onChannelJoinConfirm: (ResultCode result) {//加入Channel成功},... });加入頻道需要上面獲取的臨時 Token,在初始化?RtcEngineKit?成功后:
var token = ''; // 輸入臨時 Token var channelId = ''; // 輸入自定義頻道 ID var userId = ; // 輸入自定義 User ID var config = RtcChannelConfig(); config.mode = ChannelMode.Meeting, // 頻道模式:OneOnOne 一對一模式,Meeting 多人模式 config.serviceFlags = const {ChannelService.Media }; // serviceFlags 頻道標(biāo)志:Media 音視頻, Whiteboard 白板 config.subscribeAudioAll = true, // 自動訂閱音頻,可以配置為 false 來主動訂閱音頻 config.userName = ''; //輸入 User Name _engine.joinChannel(token, channelId, userId, config: config);更新?build?方法,添加?RtcSurfaceView?Widget,并保存?RtcSurfaceViewModel?對象:
RtcSurfaceViewModel _viewModel; ... @override Widget build(BuildContext context) {return MaterialApp(...RtcSurfaceView(onViewCreated: ((viewModel) {setState(() {_viewModel = viewModel;});})),...); }加入頻道成功后,開啟音視頻:
_engine.startAudio(); _engine.startVideo(_viewModel);執(zhí)行 run 命令啟動應(yīng)用程序。
flutter run?
?
設(shè)備權(quán)限
Pano SDK 需要?攝像頭?和?麥克風(fēng)?權(quán)限來開始視頻通話。
Android
打開?AndroidManifest.xml?文件并且添加必備的權(quán)限到此文件中.
<manifest>...<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" />... </manifest>iOS
打開?info.plist?文件并且添加:
- Privacy - Microphone Usage Description,并且在?Value?列中添加描述。
- Privacy - Camera Usage Description, 并且在?Value?列中添加描述。
應(yīng)用可以在后臺運(yùn)行音視頻通話,前提是你開啟了后臺模式。在 Xcode 中選擇你的 app target,點(diǎn)擊?Capabilities?標(biāo)簽,開啟?Background Modes,并且勾選?Voice over IP。我們的 SDK 使用?PlatformView,你需要設(shè)置?io.flutter.embedded_views_preview?為?YES?在你的?info.plist?中。
結(jié)語
以上 SDK 源代碼均開源,你可以在我們官方網(wǎng)頁進(jìn)行下載和體驗(yàn)。Flutter SDK 相關(guān)鏈接:
下載 - 拍樂云Pano_高清實(shí)時音視頻通信云?www.pano.video
關(guān)注拍樂云Pano的CSDN號,我們將為大家分享更多關(guān)于 Flutter 的開發(fā)經(jīng)驗(yàn),以及基于 Pano Flutter SDK 開發(fā)的詳細(xì)教程。
總結(jié)
以上是生活随笔為你收集整理的Pano Flutter SDK 全新发布,跨平台音视频开发更easy的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蒜苗五花肉(图解)
- 下一篇: Tomcat配置登录拦截功能