小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

(四十七) 藍(lán)牙自拍桿原理學(xué)習(xí)

 九州好人 2022-06-15 發(fā)布于遼寧

前言:最近買(mǎi)了一個(gè)小米藍(lán)牙自拍桿去泰山玩兒,用了好好的,突然想看下藍(lán)牙自拍桿原理是什么,百度學(xué)習(xí)了一下。

demo: https://github.com/happyjiatai/demo_csdn/tree/master/demo_47_bluetoothzipaigan

1. 藍(lán)牙自拍桿原理

說(shuō)藍(lán)牙自拍桿原理之前,先科普一下相機(jī)拍照的快捷鍵,音量鍵作為快捷鍵是可以設(shè)置功能的,比如小米mix2 是可以作為快門(mén)、變焦和音量的,如下圖所示。這里強(qiáng)調(diào)一點(diǎn),使用藍(lán)牙自拍桿,必須將音量鍵功能設(shè)為快門(mén),這個(gè)菜單是和藍(lán)牙自拍桿的拍照功能相對(duì)應(yīng)的。

然后,藍(lán)牙自拍桿其實(shí)就是用的音量鍵作為快門(mén)快捷鍵的特性才產(chǎn)生作用的。比如如果不在拍照界面,點(diǎn)擊藍(lán)牙拍照按鈕,會(huì)把調(diào)節(jié)音量的進(jìn)度條調(diào)出來(lái)。這可以證明藍(lán)牙自拍桿是操作音量鍵起到效果的。

2. 原理的代碼層面分析

第一部分主要從使用角度上分析了藍(lán)牙自拍桿的原理,第二部分再?gòu)拇a層面上驗(yàn)證或者證明一下。

我寫(xiě)了一個(gè)小的demo

  1. package com.example.demo_47_bluetoothzipaigan;
  2. import android.os.Bundle;
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.util.Log;
  5. import android.view.KeyEvent;
  6. public class MainActivity extends AppCompatActivity {
  7. private static final String TAG = 'jiatai';
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. }
  13. @Override
  14. public boolean onKeyDown(int keyCode, KeyEvent event) {
  15. Log.d(TAG, 'onKeyDown : '+ keyCode);
  16. switch (keyCode) {
  17. case KeyEvent.KEYCODE_VOLUME_UP:
  18. Log.d(TAG, 'KeyEvent.KEYCODE_VOLUME_UP');
  19. return true;
  20. case KeyEvent.KEYCODE_VOLUME_DOWN:
  21. Log.d(TAG, 'KeyEvent.KEYCODE_VOLUME_DOWN');
  22. return true;
  23. default:
  24. break;
  25. }
  26. return super.onKeyDown(keyCode, event);
  27. }
  28. @Override
  29. public boolean onKeyUp(int keyCode, KeyEvent event) {
  30. //Log.d(TAG, 'onKeyUp', new RuntimeException());
  31. Log.d(TAG, 'onKeyUp : '+ keyCode);
  32. return super.onKeyUp(keyCode, event);
  33. }
  34. }

這個(gè)demo很簡(jiǎn)單,主要就是監(jiān)控手機(jī)按鍵的事件下發(fā),看下點(diǎn)擊藍(lán)牙自拍桿的拍照按鈕后的log打印

而66和24這兩個(gè)event對(duì)應(yīng)的分別是enter鍵和音量上鍵

  1. /** Key code constant: Volume Up key.
  2. * Adjusts the speaker volume up. */
  3. public static final int KEYCODE_VOLUME_UP = 24;
  4. /** Key code constant: Enter key. */
  5. public static final int KEYCODE_ENTER = 66;

從藍(lán)牙界面也可以看出自拍桿其實(shí)是作為一個(gè)鍵盤(pán)來(lái)對(duì)待的,這個(gè)鍵盤(pán)的按鍵下發(fā)其實(shí)就是下發(fā)enter key和volume up key,volume up key等效于用戶手點(diǎn)音量上鍵。相機(jī)的onKeyUp接收到對(duì)應(yīng)事件進(jìn)行相應(yīng)設(shè)置的邏輯處理,一般是快門(mén),也就是拍照。

3. 總結(jié)

藍(lán)牙自拍桿簡(jiǎn)單來(lái)說(shuō)功能等效于手動(dòng)按下音量上鍵,它們?cè)谠砩隙际窍掳l(fā)了volume up的event給相機(jī)進(jìn)行處理,相機(jī)接收到這個(gè)event就按照相機(jī)的音量鍵設(shè)置來(lái)實(shí)現(xiàn)對(duì)應(yīng)的功能。所以我們想要藍(lán)牙自拍桿起拍照的作用,必須將音量鍵設(shè)為快門(mén)的快捷鍵。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多