2015-11-17 134 views
2

我正在開發一款基本上通過藍牙連接2臺智能手機的Android應用程序。連接的目的是控制一臺設備攝像機(從設備)並與另一臺設備(主設備)拍攝照片/視頻。Android應用程序通過藍牙進行視頻流式傳輸

我在設備之間創建了藍牙連接,一個充當客戶端,另一個充當服務器。服務器打開相機並偵聽客戶端是否正在進行任何操作(拍攝,縮放等)。

現在,問題是服務器(奴隸)如何顯示客戶端(主)他的相機飼料?

我可以在設備之間傳輸字節,並且在閱讀了關於這個問題的一些文章後,我認爲字節應該被壓縮成幀(由從設備),然後作爲圖像打開並顯示在屏幕上(在主設備上) 。

任何人都知道什麼是最好的方式來做到這一點?任何推薦的協議或API?不同方法有哪些優缺點?

任何幫助將不勝感激。

+0

同樣在這裏,讓我知道你是否找到了解決辦法。謝謝 –

+0

你可以請張貼示例代碼你怎麼實際上給命令打開相機應用程序的奴隸?這將節省我的時間。提前致謝。 –

回答

2

通常藍牙發送圖像幀非常慢,但不需要發送每一幀。你將面臨的一個問題是幀碰撞。藍牙套接字將您的數據(幀)作爲字節數組發送。因此,在大多數時間從另一端接收數據時,前一幀和當前幀的字節將發生衝突。所以你需要確保第一幀被遠程手機接收併成功處理。遠程移動設備正在處理時創建的幀不應該存儲在緩衝區中以供稍後發送,而應該忽略它們(不應發送)。有些框架可能會丟失,但是您將以實時動態形式工作。現在,android手機將根據相機分辨率創建預覽的大框架。所以你只需要發送小尺寸的畫面,在顯示器的剩餘空間中可以顯示相機控制。

我已經在我的Github回購中發佈了一個示例項目。 Bluetooth Camera