Flutter 是當前最火的跨平臺開發技術,而 Agora 是音視頻的 SDK,當這二者結合起來,就是 Agora Flutter SDK。android
Agora Flutter SDK 可讓你很輕鬆的使用 Flutter 來開發音視頻應用,而且視頻的渲染效率和 Native 幾乎沒有差異,效率同樣,可是開發量減半,並且仍是跨平臺的,有沒有以爲很興奮呢(搓手)。git
接下來,就跟着我一塊兒體驗吧。github
在正式體驗 Agora Flutter SDK 以前,須要:bash
Flutter 開發環境的安裝,我這裏就不說了,不熟悉的同窗能夠去搜索相關文章。app
點擊這個 網址 進入註冊頁面。ide
按照提示註冊好帳號。性能
進入本身的控制檯,以下的樣子:gradle
點擊建立項目,輸入名字就能夠建立了。ui
建立完項目以後,在項列表裏點擊項目的名字查看信息:spa
這裏的 App ID
很重要,待會會用到。
能夠在 GitHub 上下載 Agora Flutter SDK 的 Demo 工程,地址爲:github.com/AgoraIO-Com…
將工程 clone 到本地:
git clone git@github.com:AgoraIO-Community/Agora-Flutter-Quickstart.git
複製代碼
在 VS Code 中,File
-> Open ...
選擇 Agora-Flutter-Quickstart
的文件夾,而後打開。
在 lib/src/utils/settings.dart 裏添加 App ID。
代碼由:
// Agora AppId
const APP_ID = "";
複製代碼
變爲:
// Agora AppId
const APP_ID = "******";//此處是你的 App ID
複製代碼
你能夠先使用 Android Stuido 打開 Android 的模擬器,或者打開 iOS 的模擬器,或者鏈接真機(Android、iOS都行)。
我這裏打開的是 Android 的模擬器,你能夠在 VS Code 的右下角,看到以下的標誌:
說明模擬器打開成功。
而後在 VS Code 裏,Debug
-> Start Without Debugging
,就能夠運行成功:
這裏你若是鏈接的是真機,可能會出現安裝完,閃退的問題,若是出現這樣的問題,能夠將:
android/app/build.gradle 裏的
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
複製代碼
改成:
ndk {
abiFilters 'armeabi-v7a', 'x86' ,'arm64-v8a'
}
複製代碼
輸入房間號(本身隨便輸入一串數字),點擊按鈕 Join
就能夠打開視頻流:
由於我用的是模擬器,因此這裏的視頻流是這樣子的,若是你用的真機,就能夠看到視頻了
在另外一臺手機上也安裝上 App,而後輸入相同的房間號,就能夠看到兩路視頻,至關於視頻通話:
看完實際運行效果後,咱們在看 Agora Flutter SDK 的使用。
Agora Flutter SDK 也是 Flutter 的一個庫,因此要在 pubspec.yaml
裏添加依賴:
agora_rtc_engine: ^0.9.4
複製代碼
添加完以後運行:
flutter packages get
複製代碼
初始化 AgoraRtcEngine 的時候須要傳入 App ID:
AgoraRtcEngine.create(APP_ID);
複製代碼
AgoraRtcEngine.enableVideo();
複製代碼
AgoraRtcEngine.createNativeView(uid,(viewId) {
AgoraRtcEngine.setupLocalVideo(viewId, VideoRenderMode.Hidden);
AgoraRtcEngine.startPreview();
....
})
複製代碼
AgoraRtcEngine.createNativeView(uid,(viewId) {
AgoraRtcEngine.setupRemoteVideo(viewId, VideoRenderMode.Hidden, uid);
....
})
複製代碼
爲了看 Agora Flutter SDK 的性能,我打開了視頻,對 CPU和GPU 進行監控,下面是監控的視頻:
下面是 CPU 和 GPU 刷新的數據:
上面的是 GPU 的數據,一幀最大的渲染耗時 25.5 ms,平均耗時爲 10.2 ms,FPS > 60 幀,很是流暢 下面的是 CPU 的數據,一幀渲染平均耗時才爲 6.3 ms,FPS 遠大於 60
在錄製視頻的同時,使用 Android Profile 監測性能:
發現 CPU 的使用率一直維持在個位數,而內存的使用也不是太多,可見 Agora Flutter SDK 顯示視頻的性能也很好,幾乎和 Native 的沒有差異。
Agora Flutter SDK 不只具備和 Native 同樣的性能,並且開發速度更快,下次講解 Agora Flutter SDK 的自定義功能開發。