影片剪輯+音軌調製
修改後reader會出現以下問題(因為reader不可創建房間!)
在fastboard_flutter內的widget處理提供的工具們,type/application是提供的工具
先把fastboard_flutter內的檔案全部加上中文註解
How to modify plugins Dart code Flutter?
How to Modify an existing pub package to use in your flutter project
換為自己的Github(跟Github Desktop連結)來編輯+測試 → 可執行
更改顏色測試,可行(只是要先從).yaml移出再移入,flutter pub get沒有用
利用 ChatGPT 提示語突破字數限制教學,深入分析摘要2萬字資料
這段程式碼提供了一個用於互動式白板的客戶端庫,通過與Web端白板互動進行通信,實現了在應用程式中顯示白板、插入內容、同步狀態等功能。以下是這段程式碼的主要功能、架構詳述以及提供的函式與功能:
功能總結:
這個程式碼的主要功能是與一個名為 "白板" 的Web端應用進行互動,並在客戶端應用中實現以下功能:
程式碼架構詳述:
程式碼分為四個部分,分別是 "@1"、"@2"、"@3" 和 "@4"。這些部分提供了一個名為 "JavaScriptNamespaceInterface" 的類別,該類別用於管理與Web端白板的互動。該類別包含了一系列的方法,每個方法對應一個具體的功能或操作。這些方法使用 "dsBridge" 這個橋接程式庫來實現客戶端和Web端之間的通信。每個方法的實現根據功能的不同,執行不同的操作,例如發送請求、處理回應、更新狀態等。
提供的函式與功能:
以下是 "@1"、"@2"、"@3" 和 "@4" 中所提供的具體函式與功能的總結:
JavaScriptNamespaceInterface(String namespace)
: 創建一個JavaScript命名空間的介面,用於在客戶端和Web端之間通信。setMethod(String name, Function method)
: 設置特定名稱的方法,用於接收Web端的請求。這些函式和功能共同實現了一個客戶端庫,使應用能夠與Web端白板進行互動,並在應用中實現互動式白板的各種操作和功能。它提供了許多用於操作和控制白板的方法,使開發者能夠根據需求進行自定義的互動體驗。
@1 中提供的函式與功能:
JavaScriptNamespaceInterface(String namespace)
: 創建一個 JavaScript 命名空間的介面,用於在客戶端和 Web 端之間通信。setMethod(String name, Function method)
: 設置特定名稱的方法,用於接收 Web 端的請求。@2 中提供的函式與功能:
_fireRoomStateChanged(String value)
: 處理房間狀態變化的回調函式,更新本地房間狀態。_firePhaseChanged(String value)
: 處理階段變化的回調函式,更新本地階段狀態。_fireCanUndoStepsUpdate(value)
: 處理可撤銷步驟更新的回調函式,觸發可撤銷步驟狀態更新。_fireCanRedoStepsUpdate(value)
: 處理可重做步驟更新的回調函式,觸發可重做步驟狀態更新。_fireDisconnectWithError(value)
: 處理斷開連接並帶有錯誤信息的回調函式,觸發斷開連接事件。_fireKickedWithReason(value)
: 處理被踢出房間的回調函式,觸發被踢出事件。_fireCatchErrorWhenAppendFrame(value)
: 處理追加幀時的錯誤回調函式,觸發錯誤事件。_fireMagixEvent(value)
: 處理魔法事件的回調函式,觸發魔法事件。_fireHighFrequencyEvent(value)
: 處理高頻事件的回調函式,觸發高頻事件。@3 中提供的函式與功能:
createRoomInterface()
: 創建房間介面,設置與房間相關的方法。_fireRoomStateChanged(String value)
: 更新房間狀態並觸發房間狀態變化事件。_firePhaseChanged(String value)
: 更新階段狀態並觸發階段變化事件。_fireCanUndoStepsUpdate(value)
: 觸發可撤銷步驟狀態更新事件。_fireCanRedoStepsUpdate(value)
: 觸發可重做步驟狀態更新事件。_fireDisconnectWithError(value)
: 觸發斷開連接事件並帶有錯誤信息。_fireKickedWithReason(value)
: 觸發被踢出事件並帶有原因。_fireCatchErrorWhenAppendFrame(value)
: 觸發追加幀時的錯誤事件。_fireMagixEvent(value)
: 觸發魔法事件。_fireHighFrequencyEvent(value)
: 觸發高頻事件。isDisconnectedBySelf()
: 檢查是否是自己斷開連接。setGlobalState(GlobalState modifyState)
: 設置全局狀態。getGlobalState<T extends GlobalState>(GlobalStateParser<T> parser)
: 獲取全局狀態。setMemberState(MemberState state)
: 設置成員狀態。getMemberState()
: 獲取成員狀態。getRoomMembers()
: 獲取房間成員列表。setViewMode(ViewMode viewMode)
: 設置視圖模式。getBroadcastState()
: 獲取廣播狀態。getRoomStateNative()
: 獲取本地緩存的房間狀態。getRoomState()
: 獲取最新的房間狀態。getRoomPhaseNative()
: 獲取本地階段狀態。getRoomPhase()
: 獲取最新的階段狀態。disconnect()
: 斷開連接。disableOperations(bool value)
: 允許/禁止白板操作。disableCameraTransform(bool value)
: 允許/禁止視圖移動縮放。disableDeviceInputs(bool value)
: 允許/禁止使用白板工具。disableWindowOperation(bool value)
: 允許/禁止窗口操作。disableEraseImage(bool value)
: 允許/禁止擦除圖片。getWritable()
: 獲取是否可寫狀態。setWritable(bool writable)
: 設置是否可寫狀態。debugInfo()
: 獲取調試信息。pptNextStep()
: 下一步幻燈片。pptPreviousStep()
: 上一步幻燈片。addPage([Scene? scene, bool after = false])
: 添加場景。nextPage()
: 下一頁場景。prevPage()
: 上一頁場景。putScenes(String dir, List<Scene> scene, int index)
: 放置場景。setScenePath(String path)
: 設置場景路徑。setSceneIndex(int index)
: 設置場景索引。moveScene(String sourcePath, String targetDirOrPath)
: 移動場景。removeScenes(String dirOrPath)
: 刪除場景或場景組。getScenes()
: 獲取場景FastRoomController(fastRoomOptions)
:初始化 FastRoomController 實例,並接受 FastRoomOptions 作為參數。onOverlayChanged()
:返回一個流(Stream),用於監聽覆蓋物(overlay)變化的事件。onError()
:返回一個流,用於監聽快速房間產生錯誤的事件。onSizeChanged()
:返回一個流,用於監聽快速房間視圖尺寸變化的事件。changeOverlay(int key)
:切換覆蓋物,通過添加 OverlayChangedEvent 到事件流。notifyFastError(WhiteException exception)
:通知快速房間產生錯誤,將 FastErrorEvent 添加到事件流。notifySizeChanged(Size size)
:通知視圖尺寸變化,將 SizeChangedEvent 添加到事件流。cleanScene()
:清除當前場景的繪畫元素和圖像。addPage()
:在當前場景的目錄中添加一個新頁面。prevPage()
:切換到上一個頁面。nextPage()
:切換到下一個頁面。removePages()
:移除所有頁面。setAppliance(FastAppliance fastAppliance)
:設定白板工具,例如畫筆、橡皮擦等。setStrokeWidth(num strokeWidth)
:設定元素的繪畫筆觸寬度。setStrokeColor(Color color)
:設定元素的繪畫筆觸顏色。setWritable(bool writable)
:設定使用者在房間中的寫入權限。undo()
:撤銷上一步操作。redo()
:重做一步操作。zoomTo(num zoomScale)
:將白板縮放至指定比例。zoomReset()
:重置白板的縮放比例。joinRoomWithSdk(WhiteSdk whiteSdk)
:使用指定的 WhiteSdk 加入白板房間。joinRoom()
:加入白板房間。reconnect()
:重新連接房間。insertImage(String url, num width, num height)
:在白板上插入一個圖片。insertVideo(String url, String title)
:在白板的子窗口插入一個視頻或音頻。insertDoc(InsertDocParams params)
:在白板的子窗口插入一個文檔。setContainerSizeRatio(double ratio)
:設定容器的大小比例。updateRoomLayoutSize(Size size)
:更新 FastRoomView 的佈局尺寸。updateThemeData(bool useDarkTheme, FastThemeData themeData)
:更新白板的主題。_onRoomStateChanged(RoomState newState)
:處理房間狀態變化事件。_onRoomPhaseChanged(String phase)
:在重新連接時,處理房間階段變化事件,清除 redo 和 undo 計數。_onRoomKicked(String reason)
:處理房間被踢出事件。_onRoomError(String error)
:處理房間錯誤事件。_onRoomDisconnected(String error)
:處理房間斷開事件。_onCanRedoUpdated(int redoCount)
:處理可重做計數更新事件。_onCanUndoUpdated(int undoCount)
:處理可撤銷計數更新事件。dispose()
:在 FastRoomController 被銷毀時,關閉相關的事件流。GitHub - Nero-Hu/Whiteboard-Web-doc at 8632690570b284f80bc7841e020cd0c2186757b3
在default UI介面中加入icon測試disconnect
terminal會出現以下訊息與顯示持續loading的畫面
加上段disconnect後返回上一頁功能:Termenal顯示狀態轉換與頁面成功回到上一頁
新增了文字模式
文件轉換相關流程:
禁用設備功能:
測試link實行
目前link取得資料測試可成功
但在確認資料(把三項參數帶入example constand.dart)的時候出現報錯