全栈工程师?
嗯.....目前并不是!

2個知識點,帶你走近藍牙設計

筆者結合自身經驗,向我們介紹了做設計藍牙項目時,應該要知道的一些藍牙小知識以及設計時需要考慮的問題。讓我們來看看筆者是怎麼說的吧:

最近做了一個關於帶Sound bar的智能電視的藍牙項目,就是將電視Sound bar當作藍牙音箱,將手機、電腦等設備的聲音傳輸到電視,通過電視Sound bar播放聲音。做這個項目的時候遇到了各種大大小小的問題,好在都解決了。本篇文章總結了在設計藍牙相關的項目時需要了解的小知識以及要考慮的問題。

一、藍牙小知識

藍牙是一種無線技術標準,可實現固定設備和樓宇個人域網之間的短距離數據交換。

藍牙發展至今經歷了8個版本的更新:1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2、5.0。在1.x~3.0之間的我們稱之為傳統藍牙;4.x開始的藍牙稱之為低功耗藍牙也就是藍牙ble;當然4.x版本的藍牙也是向下兼容的。Android手機必須系統版本4.3及以上才支持BLE API。

1. 藍牙設備最多可以連接幾個設備?

藍牙設備根據角色分為主設備和從設備2種角色,主設備最多可以支持7個設備連接,從設備很難與一個以上的設備連接。從設備被連接后,其他設備無法連接此設備。可能有人問了什麼是主設備,什麼是從設備。你可以這樣區分:搜索併發起連接的設備是主設備,被搜索和被連接的設備是從設備。

2. 藍牙的Source端、Sink端、客戶端和服務端如何區分?

非低功耗設備

Source端為發送碼流的端,Sink端為接收碼流的端。

舉個例子:你的手機連接了藍牙音箱,則你的手機是Source端,會發送歌曲的信息給藍牙音箱播放;藍牙音箱則是Sink端,接收歌曲信息並播放。這個時候的主設備手機就是Source端,從設備藍牙音箱就是Sink端。

低功耗設備

低功耗設備的話是按客戶端(Client)和服務端(Server)來分。

例如:手環和手機連接后,手機作為客戶端(Client),手環作為服務端(Server)。因為數據儲存在手環中,通過手環發送到手機,所以手環作為服務端。

能反向相互發送文件設備:如手機連手機、手機連電腦、電腦連電腦等情況,就不存在Source端、Sink端、客戶端、服務端等情況,只有主從設備。並且這些設備可相互傳文件。

3. 藍牙設備配對

藍牙SIG為了保證藍牙通信的安全性,採用認證的方式進行數據交互。同時為了保證使用的方便性,以配對的形式完成兩個藍牙設備之間的首次通訊認證。經配對之後,隨後的通訊連接就不必每次都要做確認。所以認證碼的產生是從配對開始的,經過配對,設備之間以PIN碼建立約定的link key用於產生初始認證碼,以用於以後建立的連接。

然而有些設備是不需要驗證即可連接的,也就是節省了彈窗確認框的步驟。感興趣的可以查看此網址:https://blog.csdn.net/qq_25827845/article/details/52400782

4. 藍牙設備連接

已配對成功的設備才可以進行連接,已連接過的設備,下次可以直接連接,不需要配對;打開藍牙后可自動連接最後一次連接的藍牙設備,前提是配對信息不刪除。

二、設計時需要考慮的問題

1. 帶屏音箱和無屏音箱的區別

平時接觸較多的都是無屏音箱,例如平常的桌面藍牙小音箱,手機一連接就可以使用。常見的帶屏音箱較多的就是車載藍牙音箱、帶Sound bar的電視等。

那麼設計無屏音箱和有屏音箱的區別究竟是什麼?

無屏音箱

無屏音箱的幾乎所有的操作都在手機端,音箱端主要承載播放聲音、開/關機的操作、各種狀態的指示燈和語音提示等。

例如:等待連接、連接成功、播放中、斷開連接、低電量等會有相應的指示燈提示;連接成功、斷開連接、低電量等還有聲音提示。部分音箱可能有切換音頻、播放等功能。

有屏音箱

有屏音箱通常是可以反控主設備,並且屏幕會展示當前的聲音信息和狀態變化。對於智能電視來說,除了聲音播放的功能之外,它還可以進行其他的操作,並且和手機一樣還可以和其他應用交互。這就導致了很多其他複雜情況的出現。

2. 明確Source端和Sink的切換時機

對於電視Sound bar 的藍牙音箱來說,屬於非低功耗設備,但是對於電視本身是既可以作為主設備又可以作為從設備,既可以發送碼流又可以接受碼流。所以在使用中會涉及到主設備從設備的角色轉換,也會有Source端和Sink端的狀態切換,切換時機需要明確。

針對此情況可做以下規定:

(1)進入藍牙音箱App界面后,電視設備由Source端切換為Sink端,作為可發現設備被其他設備發現並連接(從設備),但無法搜索並連接其他藍牙設備。此時可接受來自連接設備(如手機)的音頻等碼流。

(2)退出藍牙音箱App界面后,電視設備由Sink端切換為Source端,可搜索並連接其他藍牙設備。跳轉到其他應用處理方式與此相同。

3. 應用切換與返回

針對Android系統的TV,還需要注意用戶按遙控器上的【返回】鍵的邏輯。在這些Source端和Sink端的切換以及應用之間的跳轉過程后,需要遵循Android的返回規則,按【返回】鍵可以返回上一個應用,並且在這個過程中完成Source端和Sink端的切換。

4. 藍牙應用內彈窗處理

在藍牙音箱App界面下會出現一些系統彈窗覆蓋在當前頁面,這時候有兩種處理方式:

(1)彈窗彈出時,歌曲暫停,關閉彈窗后,歌曲繼續播放;

(2)彈窗彈出時,如不干擾聲音的,可繼續播放。關閉彈窗無影響。如果彈窗會引導切換到其他應用,則切換后歌曲停止播放,並且則按上面Source切換規則來處理。

5. 當前聲音通道被搶佔

聲音通道被占,例如呼出語音類產品時(如Alexa),則暫停歌曲,直到音頻通道佔用解除,歌曲恢復播放。如果因為聲音引導啟動新應用,則除了暫停聲音后,還需要切換Sink端為Source端,接收其他音頻播放。

6. 通話處理

手機作為主設備連接音箱時,如果有電話接入,分為可拾音音箱和不可拾音音箱兩種情況:

(1)可拾音音箱:

聲音傳到音箱上,用戶手機上可選擇聽筒、手機揚聲器、或者是藍牙音箱;

(2)不可拾音音箱:

撥入電話:聲音傳到音箱,接電話后,用戶手機上可選擇聽筒、手機揚聲器、或者是藍牙音箱。不過用戶還是得和用手機接聽一樣,靠近手機才能將聲音傳到對方手機里;

撥出電話:默認聲音在當前選擇好的通道上,用戶手機上可選擇聽筒、手機揚聲器、或者是藍牙音箱。

其實關於通話處理的,手機都有相應處理的,藍牙音箱可不做處理。

7. 藍牙連接狀態處理

藍牙設備的主要狀態為等待連接、配對、連接成功、連接失敗、斷開連接等5種狀態,設計時需要明確這5種狀態的切換以及界面中的表現方式。

等待連接:界面中需要足夠的提示信息,等待其他設備來連接。其中必不可少的元素是當前設備名稱,當前狀態如等待連接。

配對:藍牙配對有點擊配對和自動配對,點擊配對就是建立連接的兩個設備進行確認的一步,PIN碼一致的設備可成功配對,配對之後才進行設備連接。配對過程是可以根據產品的需求去掉這一步的,也就是自動配對。

連接成功:連接成功后,要獲取連接音箱的設備(如手機)的狀態,判斷當前手機是否在播放歌曲,如果當前正在播放,則藍牙音箱也會立即播放歌曲。

連接失敗:連接失敗后,則設備之間無法通訊,用戶可以通過再次連接建立2個設備間的通訊。連接失敗后,設備應該立即可以被再次連接的。

斷開連接:斷開連接屬於異常狀態,在界面中需要及時的提示並切換狀態。也可以提供聲音的提示“斷開連接”。斷開連接之後,設備是立即可以被再次連接的,也就是回到了等待連接狀態。

8. 播放與暫停的動效切換

因為電視的藍牙音箱是帶屏的,所以在藍牙音箱的狀態下,還需要處理屏的顯示效果。如何讓大屏和藍牙音箱播放的歌曲契合也是需要考慮的。

如果是有背景動畫的,分為三種:

  • 背景動畫根據音樂頻譜跳動,如果要採用此種方式的話,希望你的團隊可以做到背景動畫和音樂頻譜的狀態一致。而不是歌曲節奏很快時,當前畫面動畫節奏很慢,這樣效果會適得其反。
  • 顯示靜態圖片,固定時間切換下一張,如果無法實現背景根據音樂頻譜跳動,可以採取這種方式,也是很多在線音樂App採取的方式。(只顯示一張靜態圖是保險的做法,但是會顯得比較單調。)
  • 背景動畫和音樂頻譜無關,採用這種方式的,選用的動畫建議是勻速的。

9. 音樂和視頻等聲音處理方式不一致

音樂類音頻可以獲取如歌曲名、歌手、歌詞、時長、播放進度等信息都可以獲取,界面可以正常地展示這些信息。但是對於視頻類則獲取不了這些信息,只拿到音頻,拿不到時間、聲音描述信息;並且無法判斷用戶從音頻切換到了視頻。所以界面最好兼容有歌曲名、歌手、歌詞、時長、播放進度和無這些信息的展示。

三、結語

文章主要總結了設計師需要了解的藍牙小知識和在設計藍牙App需要注意的問題,文章的多處都是以電視的藍牙音箱舉例的,所以如果是設計不帶屏的藍牙App會和以上情況不一致,請參考使用。

如果喜歡文章的要記得點贊哦!

 

參考資料:

CSDN《深入了解Android藍牙Bluetooth》

原文地址:https://blog.csdn.net/androidstarjack/article/details/60468468

CSDN《android bluetooth——藍牙的開啟、搜索、配對與連接》

原文地址:https://blog.csdn.net/yehui928186846/article/details/52710112

CSDN《Android 藍牙開發之搜索、配對、連接、通信大全》

原文地址:https://blog.csdn.net/qq_25827845/article/details/52997523

 

作者:一戈何處,微信公眾號:一戈何處

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《2個知識點,帶你走近藍牙設計》
文章链接:https://www.pmbear.com/archives/9468
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

大前端WP主题 更专业 更方便

联系我们联系我们