付費擴充功能
← 文件總覽
首頁 / 文件 / 付費擴充功能
⚡ Add-on Modules

付費擴充功能

以下功能為選購模組,不包含於標準授權範圍內。每項功能均需獨立開發、串接或授權,可依營運需求彈性加購。所有擴充模組均建立在既有的用戶體系、星幣 / 鑽石貨幣系統與後台基礎上,整合成本相對可控。

🎦
多人視頻
仿語聊房佈局,每位參與者可開啟獨立視訊小窗,支援麥克風 + 攝像頭同時開啟。
🎮
彈幕遊戲直播
直播間內嵌互動小遊戲,觀眾透過彈幕指令參與,提升留存與互動率。
📡
OBS 直播推流
提供 RTMP 推流地址,讓主播使用 OBS 等專業軟體推流,取代 App 內建直播。
🔐
付費解鎖內容
用戶可用星幣解鎖動態牆或個人頁中的付費影片 / 圖片,主播可設定定價。
⏱️
1 對 1 計時扣點
一對一視訊 / 語音通話改為依秒 / 分計費,按時間從觀眾星幣餘額扣款。
客製化美顏
提供超出標準美顏 SDK 的進階濾鏡、貼圖、風格化特效,可依品牌客製化。
💳
第三方金流串接
於 iAP 之外提供網頁金流購點(信用卡、加密貨幣、本地支付),擴大付費管道。
⚠️
以上均為尚未實作的擴充模組,實際開發時程與費用依功能複雜度報價。串接第三方金流須確認各地區法規合規性(KYC / 反洗錢)。

Add-on · Multi-Video

多人視頻

仿語聊房的多人同框體驗,差異在於語聊房以語音為主(僅部分麥克風),多人視頻則讓每位參與者均可開啟獨立小視窗(視訊 + 聲音),形成多格畫面佈局。

核心功能
  • 房間最多支援 N 人同時開啟視訊小窗(N 依 RTC 授權而定)
  • 格狀 / 主副畫面佈局可切換
  • 每個小窗獨立控制:靜音、關鏡、踢出
  • 房主可鎖定視訊座位(需申請才能上鏡)
  • 支援禮物互動與星幣送禮
技術要點
  • 需整合即時通訊 RTC SDK(如聲網 Agora、TRTC)
  • 多路視訊串流對頻寬消耗顯著高於語聊房
  • 建議限制同時開鏡人數(6~9 人為佳)
  • UI 需新增視訊格子排版元件(Flutter Widget)
差異化對比
  • 語聊房:語音為主,視訊為選配
  • 多人視頻:視訊為核心,人人可開鏡
  • 直播間:單一主播對多觀眾單向廣播
  • 多人視頻:多對多雙向即時互動
RTC SDK 授權費 Flutter 新元件 後端信令擴充

Add-on · Danmaku Game

彈幕遊戲直播

在直播間內嵌互動式小遊戲,觀眾透過發送特定彈幕指令操控遊戲角色或事件,創造主播與觀眾的深度互動,有效提升留存時長與送禮意願。

玩法機制
  • 觀眾發送指定關鍵字彈幕觸發遊戲事件
  • 發送禮物可觸發更強力的遊戲指令
  • 主播可啟動 / 暫停 / 結束遊戲場次
  • 遊戲結果可自動在房間內公告
  • 支援排行榜:本場貢獻前三名
可能的遊戲類型
  • 生存射擊:觀眾彈幕操控角色閃避
  • 賽跑:多隊彈幕競速,禮物加速
  • 抽獎轉盤:送禮觸發抽獎動畫
  • PK 投票:兩隊彈幕量決勝負
技術要點
  • 遊戲引擎嵌入直播間疊層(WebView 或原生 Canvas)
  • 彈幕解析器需即時過濾指令關鍵字
  • 後端需擴充遊戲場次 API 與事件 Socket
  • 可考慮接入現成彈幕遊戲 SaaS(如 Streamlabs 外掛)
遊戲引擎整合 彈幕指令解析 Socket 事件擴充 UI 疊層設計

Add-on · OBS Streaming

OBS 直播推流

為專業主播提供 RTMP 推流支援,讓其使用 OBS Studio、Streamlabs 或其他專業直播軟體進行高品質推流,突破行動端 App 直播的硬體與畫質限制。

功能範圍
  • 後台 / App 為主播生成專屬 RTMP 推流地址 + 串流金鑰
  • 主播在 OBS 填入地址後開始推流,房間自動上線
  • 觀眾體驗與 App 內建直播一致(HLS 播放)
  • 支援多碼率自適應(需媒體伺服器支援轉碼)
  • 推流斷線自動偵測,超時後關閉直播間
技術架構
  • 媒體伺服器接收推流後轉 HLS 供 App 播放
  • 後端需新增串流金鑰管理 API
  • 媒體伺服器回調通知後端推流狀態
串流金鑰管理 HLS 播放整合

Add-on · Paid Content Unlock

付費解鎖內容

讓主播 / 創作者將動態牆貼文或個人相冊中的影片 / 圖片設為付費內容,觀眾消耗星幣後解鎖觀看。為平台增加內容變現管道,激勵優質創作。

創作者端(App)
  • 發布動態 / 相冊時可設定「付費解鎖」開關
  • 自訂解鎖所需星幣數量
  • 未付費者只看到模糊預覽圖 / 前幾秒影片
  • 可查看誰已解鎖(購買者列表)
  • 解鎖收益折算鑽石,可申請提現
觀眾端(App)
  • 動態牆 / 個人頁顯示「鎖定」標示與所需星幣數
  • 點擊後彈出確認框,扣除星幣後立即解鎖
  • 解鎖狀態永久有效(不會再次收費)
  • 星幣不足時引導前往充值入口

Add-on · Timed Billing

1 對 1 計時扣點

將現有一對一視訊 / 語音通話由「固定送禮」改為「依通話時長自動扣款」模式,每分鐘(或每秒)從觀眾星幣餘額扣除,讓主播的時間價值更直接地轉化為收益。

計費機制
  • 主播可設定每分鐘收費星幣數(自訂費率)
  • 通話開始後,後端每 N 秒驗一次餘額
  • 餘額不足時自動提示並倒數強制掛斷
  • 扣款即時折算鑽石計入主播收益
  • 可設定免費前 X 秒試用期
用戶體驗
  • 通話介面顯示即時計費倒數器與已消費星幣
  • 餘額低於 N 顆時彈出「快去充值」提示
  • 主動掛斷不退款已計費秒數
  • 通話結束後顯示本次消費明細
後端擴充點
  • 通話 Session 記錄開始時間與費率快照
  • 定時任務(每 N 秒)批量結算並寫入流水
  • 餘額不足事件透過 Socket 推送至 App
  • 通話記錄表新增計費明細欄位
⚠️
需特別注意「用戶通話中網路斷線」的計費邊界:建議採心跳機制,斷線超過 N 秒後自動停止計費,避免糾紛。
定時扣款任務 Socket 餘額推送 通話 Session 管理 斷線容錯處理

Add-on · Custom Beauty

客製化美顏

在標準美顏 SDK(年繳授權)之上,進一步提供品牌專屬濾鏡、AR 貼圖特效、風格化妝容等客製化內容,強化平台差異化視覺體驗。

擴充內容
  • 品牌 Logo 貼圖 / 節慶特效(農曆年、情人節…)
  • 進階風格濾鏡(電影風、二次元、復古底片)
  • 虛擬形象 Avatar 替換(類似 Snapchat Lenses)
  • 全身 AR 道具(帽子、眼鏡、耳朵等配件)
  • 瘦臉 / 大眼 / 膚色等美顏參數可由用戶滑桿調整
授權模式
  • 標準美顏 SDK:年繳,內建基礎美顏參數
  • 客製濾鏡包:按素材包計費或年繳加購
  • AR 道具 / 貼圖:由美顏 SDK 廠商客製開發
  • 自研素材(2D 貼圖):可自行製作後導入 SDK
整合方式
  • 美顏 SDK 已嵌入 App 相機管線,客製素材透過 SDK 素材包導入
  • 用戶可在「美顏設定」頁面切換濾鏡 / 道具
  • 部分高級道具可設為限時 / 付費解鎖
  • 素材更新不需重新提交 App Store(雲端下載)
SDK 素材包擴充 AR 道具設計 雲端素材更新 用戶美顏設定 UI

Add-on · Third-Party Payment

第三方金流串接

在 Apple / Google iAP 之外,提供網頁端金流購點管道,讓用戶透過信用卡、本地支付或加密貨幣購買星幣,降低平台對 iAP 30% 手續費的依賴,並覆蓋 iAP 無法觸達的市場。

可串接金流類型
  • 國際信用卡:Stripe、PayPal、Braintree
  • 東南亞本地支付:GrabPay、GoPay、PromptPay、MoMo
  • 加密貨幣:USDT(TRC-20 / ERC-20)、BTC via Coinbase Commerce
  • 台灣:綠界(ECPay)、藍新(NewebPay)
購點流程
  • App 內點擊「充值」跳轉 WebView(或 H5 頁面)
  • 選擇點數套餐 → 選擇支付方式
  • 跳轉金流頁面完成付款
  • 金流非同步回調後端 → 驗簽 → 發放星幣
  • App 收到 Socket 通知,餘額即時更新
合規注意事項
  • Apple 政策:數位內容若可在 App 內消費,原則上須走 iAP;網頁端購點需注意 Apple 審核規則
  • 金流商 KYC:部分金流要求商戶提供企業資質
  • 加密貨幣收款需注意各地區法規(部分地區禁止)
  • 建議諮詢當地法律顧問後再決定支援範圍
💡
最小可行方案:先串接 Stripe(信用卡) 與一種本地支付,驗證付費率後再評估加密貨幣與其他本地支付的 ROI。
⚠️
Apple App Store 審查政策明確禁止在 App 內直接引導用戶到外部網頁購買可於 App 內使用的數位商品。實作時須留意進入點設計,建議法律審查後再上線。
Stripe / PayPal 本地支付整合 WebView 購點頁 回調驗簽機制 KYC 合規
// Sidebar: close on any clickable element // Desktop lang buttons (also needed when sidebar is always visible) document.querySelectorAll('.sb-lang-opt').forEach(btn=>{ btn.addEventListener('click',function(){ if(window.innerWidth<=900)return; // handled by sidebar delegated handler above if(typeof mktSetLang==='function')mktSetLang(btn.dataset.lang); }); }); window.addEventListener('langchange',function(){ var l=localStorage.getItem('mkt_lang')||'zh-TW'; document.querySelectorAll('.sb-lang-opt').forEach(function(b){b.classList.toggle('act',b.dataset.lang===l);}); });